rollbar-api 0.4.0 → 0.4.1
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 +4 -4
- data/.github/CODEOWNERS +1 -0
- data/.github/workflows/main.yml +31 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +7 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +119 -0
- data/README.md +5 -4
- data/Rakefile +5 -3
- data/bin/console +4 -3
- data/catalog-info.yaml +12 -0
- data/examples/list_account_users.rb +11 -6
- data/examples/list_items.rb +12 -7
- data/examples/rql_query.rb +13 -8
- data/examples/top_active_items.rb +14 -9
- data/lib/rollbar-api.rb +2 -15
- data/lib/rollbar_api.rb +17 -0
- data/lib/{rollbar-api → rollbar_api}/account.rb +9 -6
- data/lib/rollbar_api/logger.rb +12 -0
- data/lib/{rollbar-api → rollbar_api}/project.rb +9 -6
- data/lib/{rollbar-api → rollbar_api}/request.rb +11 -10
- data/lib/rollbar_api/resource.rb +36 -0
- data/lib/rollbar_api/version.rb +5 -0
- data/rollbar-api.gemspec +28 -23
- metadata +52 -18
- data/.circleci/config.yml +0 -69
- data/lib/rollbar-api/logger.rb +0 -10
- data/lib/rollbar-api/resource.rb +0 -30
- data/lib/rollbar-api/version.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cb40f1378bac899e1145acb3ac7f53306441009a9a7755eb695216d4eee2789b
|
|
4
|
+
data.tar.gz: 5126b037b0cec8efd7d427489ab9ccbf40fc0c04f26c95e969ac552ce13050b5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 52369017d084475f588ed01a980227d34a9180d93f6169e76d96f9293724f55aba2a7ad9b645d85c0543bee80f72efc4945610da0aa6c01fcc94991030101ebe
|
|
7
|
+
data.tar.gz: d8cb7dbd5c01d5900ec49db6bb25b107b44b15af598f88ae7811d3379cb79bd8451e614df224982d39d314bab1cf1cb39ca2d01e9997cb45c643e963d7f18c9f
|
data/.github/CODEOWNERS
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @wealthsimple/developer-tools
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Pipeline
|
|
3
|
+
on: push
|
|
4
|
+
jobs:
|
|
5
|
+
build:
|
|
6
|
+
name: Build
|
|
7
|
+
runs-on: ubuntu-20.04
|
|
8
|
+
steps:
|
|
9
|
+
- uses: actions/checkout@v2
|
|
10
|
+
- uses: ruby/setup-ruby@v1
|
|
11
|
+
with:
|
|
12
|
+
bundler-cache: true
|
|
13
|
+
- name: Lint
|
|
14
|
+
run: bundle exec rubocop
|
|
15
|
+
- name: Test
|
|
16
|
+
run: bundle exec rspec
|
|
17
|
+
- name: Release the gem
|
|
18
|
+
if: ${{ github.ref == 'refs/heads/main' }}
|
|
19
|
+
run: |
|
|
20
|
+
mkdir -p ~/.gem
|
|
21
|
+
cat << EOF > ~/.gem/credentials
|
|
22
|
+
---
|
|
23
|
+
:github: Bearer ${GITHUB_TOKEN}
|
|
24
|
+
:rubygems_api_key: ${RUBYGEMS_API_KEY}
|
|
25
|
+
EOF
|
|
26
|
+
chmod 0600 ~/.gem/credentials
|
|
27
|
+
git config user.email "noreply@wealthsimple.com"
|
|
28
|
+
git config user.name "Wolfbot"
|
|
29
|
+
bundle exec rake release
|
|
30
|
+
env:
|
|
31
|
+
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.7.3
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
rollbar-api (0.4.1)
|
|
5
|
+
activesupport (>= 4)
|
|
6
|
+
faraday (< 1.0)
|
|
7
|
+
recursive-open-struct
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: https://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
activesupport (6.1.3.1)
|
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
|
+
i18n (>= 1.6, < 2)
|
|
15
|
+
minitest (>= 5.1)
|
|
16
|
+
tzinfo (~> 2.0)
|
|
17
|
+
zeitwerk (~> 2.3)
|
|
18
|
+
addressable (2.7.0)
|
|
19
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
20
|
+
ast (2.4.2)
|
|
21
|
+
concurrent-ruby (1.1.8)
|
|
22
|
+
crack (0.4.5)
|
|
23
|
+
rexml
|
|
24
|
+
diff-lcs (1.4.4)
|
|
25
|
+
dotenv (2.7.6)
|
|
26
|
+
faraday (0.17.4)
|
|
27
|
+
multipart-post (>= 1.2, < 3)
|
|
28
|
+
hashdiff (1.0.1)
|
|
29
|
+
i18n (1.8.10)
|
|
30
|
+
concurrent-ruby (~> 1.0)
|
|
31
|
+
minitest (5.14.4)
|
|
32
|
+
multipart-post (2.1.1)
|
|
33
|
+
parallel (1.20.1)
|
|
34
|
+
parser (3.0.1.1)
|
|
35
|
+
ast (~> 2.4.1)
|
|
36
|
+
public_suffix (4.0.6)
|
|
37
|
+
rack (2.2.3)
|
|
38
|
+
rainbow (3.0.0)
|
|
39
|
+
rake (10.5.0)
|
|
40
|
+
recursive-open-struct (1.1.3)
|
|
41
|
+
regexp_parser (2.1.1)
|
|
42
|
+
rexml (3.2.5)
|
|
43
|
+
rspec (3.10.0)
|
|
44
|
+
rspec-core (~> 3.10.0)
|
|
45
|
+
rspec-expectations (~> 3.10.0)
|
|
46
|
+
rspec-mocks (~> 3.10.0)
|
|
47
|
+
rspec-collection_matchers (1.2.0)
|
|
48
|
+
rspec-expectations (>= 2.99.0.beta1)
|
|
49
|
+
rspec-core (3.10.1)
|
|
50
|
+
rspec-support (~> 3.10.0)
|
|
51
|
+
rspec-expectations (3.10.1)
|
|
52
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
|
+
rspec-support (~> 3.10.0)
|
|
54
|
+
rspec-its (1.3.0)
|
|
55
|
+
rspec-core (>= 3.0.0)
|
|
56
|
+
rspec-expectations (>= 3.0.0)
|
|
57
|
+
rspec-mocks (3.10.2)
|
|
58
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
59
|
+
rspec-support (~> 3.10.0)
|
|
60
|
+
rspec-support (3.10.2)
|
|
61
|
+
rspec_junit_formatter (0.4.1)
|
|
62
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
|
63
|
+
rubocop (1.13.0)
|
|
64
|
+
parallel (~> 1.10)
|
|
65
|
+
parser (>= 3.0.0.0)
|
|
66
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
67
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
68
|
+
rexml
|
|
69
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
|
70
|
+
ruby-progressbar (~> 1.7)
|
|
71
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
72
|
+
rubocop-ast (1.5.0)
|
|
73
|
+
parser (>= 3.0.1.1)
|
|
74
|
+
rubocop-performance (1.11.1)
|
|
75
|
+
rubocop (>= 1.7.0, < 2.0)
|
|
76
|
+
rubocop-ast (>= 0.4.0)
|
|
77
|
+
rubocop-rails (2.9.1)
|
|
78
|
+
activesupport (>= 4.2.0)
|
|
79
|
+
rack (>= 1.1)
|
|
80
|
+
rubocop (>= 0.90.0, < 2.0)
|
|
81
|
+
rubocop-rspec (2.3.0)
|
|
82
|
+
rubocop (~> 1.0)
|
|
83
|
+
rubocop-ast (>= 1.1.0)
|
|
84
|
+
rubocop-vendor (0.6.0)
|
|
85
|
+
rubocop (>= 0.53.0)
|
|
86
|
+
ruby-progressbar (1.11.0)
|
|
87
|
+
tzinfo (2.0.4)
|
|
88
|
+
concurrent-ruby (~> 1.0)
|
|
89
|
+
unicode-display_width (2.0.0)
|
|
90
|
+
webmock (3.12.2)
|
|
91
|
+
addressable (>= 2.3.6)
|
|
92
|
+
crack (>= 0.3.2)
|
|
93
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
|
94
|
+
ws-style (6.9.0)
|
|
95
|
+
rubocop (>= 1.12.1)
|
|
96
|
+
rubocop-performance (>= 1.10.2)
|
|
97
|
+
rubocop-rails (>= 2.9.1)
|
|
98
|
+
rubocop-rspec (>= 2.2.0)
|
|
99
|
+
rubocop-vendor (>= 0.6.0)
|
|
100
|
+
zeitwerk (2.4.2)
|
|
101
|
+
|
|
102
|
+
PLATFORMS
|
|
103
|
+
ruby
|
|
104
|
+
|
|
105
|
+
DEPENDENCIES
|
|
106
|
+
bundler
|
|
107
|
+
dotenv
|
|
108
|
+
rake (~> 10.0)
|
|
109
|
+
rollbar-api!
|
|
110
|
+
rspec (~> 3.0)
|
|
111
|
+
rspec-collection_matchers
|
|
112
|
+
rspec-its
|
|
113
|
+
rspec_junit_formatter (~> 0.2)
|
|
114
|
+
rubocop
|
|
115
|
+
webmock (~> 3.0)
|
|
116
|
+
ws-style
|
|
117
|
+
|
|
118
|
+
BUNDLED WITH
|
|
119
|
+
2.2.16
|
data/README.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
# rollbar-api
|
|
1
|
+
# rollbar-api
|
|
2
|
+
[](https://github.com/wealthsimple/rollbar-api/actions)
|
|
2
3
|
|
|
3
4
|
Rubygem for accessing Rollbar's full REST and RQL APIs.
|
|
4
5
|
|
|
@@ -22,7 +23,7 @@ Next, configure each project:
|
|
|
22
23
|
|
|
23
24
|
```ruby
|
|
24
25
|
# config/initializers/rollbar-api.rb in a Rails project
|
|
25
|
-
require '
|
|
26
|
+
require 'rollbar_api'
|
|
26
27
|
|
|
27
28
|
# Add as many projects as you need. Each should have a unique access token.
|
|
28
29
|
RollbarApi::Project.configure("my-project", ENV["MY_PROJECT_ACCESS_TOKEN"])
|
|
@@ -77,8 +78,8 @@ First, generate access tokens for each account you need access to by navigating
|
|
|
77
78
|
Next, configure each account:
|
|
78
79
|
|
|
79
80
|
```ruby
|
|
80
|
-
# config/initializers/
|
|
81
|
-
require '
|
|
81
|
+
# config/initializers/rollbar_api.rb in a Rails project
|
|
82
|
+
require 'rollbar_api'
|
|
82
83
|
|
|
83
84
|
# Add as many accounts as you need (normally just one). Each should have a unique access token.
|
|
84
85
|
RollbarApi::Account.configure("my-organization", ENV["ROLLBAR_ACCOUNT_ACCESS_TOKEN"])
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'rollbar_api'
|
|
5
6
|
|
|
6
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
8
|
# with your gem easier. You can also use a different console, if you like.
|
|
@@ -10,5 +11,5 @@ require "rollbar-api"
|
|
|
10
11
|
# require "pry"
|
|
11
12
|
# Pry.start
|
|
12
13
|
|
|
13
|
-
require
|
|
14
|
+
require 'irb'
|
|
14
15
|
IRB.start(__FILE__)
|
data/catalog-info.yaml
ADDED
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
require "bundler/setup"
|
|
3
|
-
require "rollbar-api"
|
|
1
|
+
# frozen_string_literal: true
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
require 'dotenv/load'
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'rollbar_api'
|
|
6
|
+
|
|
7
|
+
account_name = ENV['ROLLBAR_ACCOUNT_NAME']
|
|
8
|
+
raise 'must specify ROLLBAR_ACCOUNT_NAME in .env' if account_name.blank?
|
|
9
|
+
|
|
10
|
+
account_access_token = ENV['ROLLBAR_ACCOUNT_ACCESS_TOKEN']
|
|
11
|
+
raise 'Must specify ROLLBAR_ACCOUNT_ACCESS_TOKEN in .env' if account_access_token.blank?
|
|
7
12
|
|
|
8
13
|
RollbarApi.logger = Logger.new(nil)
|
|
9
14
|
|
|
10
15
|
account = RollbarApi::Account.configure(account_name, account_access_token)
|
|
11
16
|
|
|
12
|
-
users = account.get(
|
|
17
|
+
users = account.get('/api/1/users')
|
|
13
18
|
users.result.users.first(5).each do |user|
|
|
14
19
|
p user
|
|
15
20
|
end
|
data/examples/list_items.rb
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
require "bundler/setup"
|
|
3
|
-
require "rollbar-api"
|
|
1
|
+
# frozen_string_literal: true
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
require 'dotenv/load'
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'rollbar_api'
|
|
6
|
+
|
|
7
|
+
project_name = ENV['ROLLBAR_PROJECT_NAME']
|
|
8
|
+
project_access_token = ENV['ROLLBAR_PROJECT_ACCESS_TOKEN']
|
|
9
|
+
|
|
10
|
+
raise 'Must specify ROLLBAR_PROJECT_NAME in .env' if project_name.blank?
|
|
11
|
+
raise 'Must specify ROLLBAR_ACCOUNT_ACCESS_TOKEN in .env' if project_access_token.blank?
|
|
7
12
|
|
|
8
13
|
project = RollbarApi::Project.configure(project_name, project_access_token)
|
|
9
14
|
|
|
10
15
|
# Fetch all items
|
|
11
|
-
items = project.get(
|
|
16
|
+
items = project.get('/api/1/items')
|
|
12
17
|
|
|
13
18
|
# Print out the first 5 items
|
|
14
19
|
items.result.items.first(5).each do |item|
|
|
15
20
|
p item
|
|
16
|
-
puts
|
|
21
|
+
puts '=' * 80
|
|
17
22
|
end
|
data/examples/rql_query.rb
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
require "bundler/setup"
|
|
3
|
-
require "rollbar-api"
|
|
1
|
+
# frozen_string_literal: true
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
require 'dotenv/load'
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'rollbar_api'
|
|
6
|
+
|
|
7
|
+
project_name = ENV['ROLLBAR_PROJECT_NAME']
|
|
8
|
+
project_access_token = ENV['ROLLBAR_PROJECT_ACCESS_TOKEN']
|
|
9
|
+
|
|
10
|
+
raise 'Must specify ROLLBAR_PROJECT_NAME in .env' if project_name.blank?
|
|
11
|
+
raise 'Must specify ROLLBAR_ACCOUNT_ACCESS_TOKEN in .env' if project_access_token.blank?
|
|
7
12
|
|
|
8
13
|
project = RollbarApi::Project.configure(project_name, project_access_token)
|
|
9
14
|
|
|
10
15
|
# Create the job
|
|
11
|
-
rql_job = project.post(
|
|
12
|
-
query_string:
|
|
16
|
+
rql_job = project.post('/api/1/rql/jobs', {
|
|
17
|
+
query_string: 'select * from item_occurrence where item.counter=1',
|
|
13
18
|
})
|
|
14
19
|
|
|
15
20
|
# Fetch job status
|
|
16
21
|
rql_job = project.get("/api/1/rql/job/#{rql_job.result.id}")
|
|
17
22
|
p rql_job
|
|
18
23
|
|
|
19
|
-
if rql_job.result.status ==
|
|
24
|
+
if rql_job.result.status == 'success'
|
|
20
25
|
# Print out succeeded job result
|
|
21
26
|
p project.get("/api/1/rql/job/#{rql_job.result.id}/result")
|
|
22
27
|
end
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
require "bundler/setup"
|
|
3
|
-
require "rollbar-api"
|
|
1
|
+
# frozen_string_literal: true
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
require 'dotenv/load'
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'rollbar_api'
|
|
6
|
+
|
|
7
|
+
project_name = ENV['ROLLBAR_PROJECT_NAME']
|
|
8
|
+
project_access_token = ENV['ROLLBAR_PROJECT_ACCESS_TOKEN']
|
|
9
|
+
|
|
10
|
+
raise 'Must specify ROLLBAR_PROJECT_NAME in .env' if project_PROJECT_NAME.blank?
|
|
11
|
+
raise 'Must specify ROLLBAR_ACCOUNT_ACCESS_TOKEN in .env' if project_access_token.blank?
|
|
7
12
|
|
|
8
13
|
project = RollbarApi::Project.configure(project_name, project_access_token)
|
|
9
14
|
|
|
10
|
-
top_active_items = project.get(
|
|
11
|
-
hours:
|
|
12
|
-
environments:
|
|
15
|
+
top_active_items = project.get('/api/1/reports/top_active_items', {
|
|
16
|
+
hours: '24',
|
|
17
|
+
environments: 'production,staging',
|
|
13
18
|
})
|
|
14
19
|
|
|
15
20
|
top_active_items.result.first(5).each_with_index do |item, i|
|
|
16
21
|
p i, item
|
|
17
|
-
puts
|
|
22
|
+
puts '=' * 80
|
|
18
23
|
end
|
data/lib/rollbar-api.rb
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require "faraday"
|
|
4
|
-
require "json"
|
|
5
|
-
require "recursive-open-struct"
|
|
6
|
-
|
|
7
|
-
require "rollbar-api/account"
|
|
8
|
-
require "rollbar-api/logger"
|
|
9
|
-
require "rollbar-api/project"
|
|
10
|
-
require "rollbar-api/request"
|
|
11
|
-
require "rollbar-api/resource"
|
|
12
|
-
require "rollbar-api/version"
|
|
13
|
-
|
|
14
|
-
module RollbarApi
|
|
15
|
-
end
|
|
1
|
+
# backwards-compatble way to migrate from `require 'rollbar-api'`
|
|
2
|
+
require 'rollbar_api'
|
data/lib/rollbar_api.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_support'
|
|
4
|
+
require 'active_support/core_ext'
|
|
5
|
+
require 'faraday'
|
|
6
|
+
require 'json'
|
|
7
|
+
require 'recursive-open-struct'
|
|
8
|
+
|
|
9
|
+
require 'rollbar_api/account'
|
|
10
|
+
require 'rollbar_api/logger'
|
|
11
|
+
require 'rollbar_api/project'
|
|
12
|
+
require 'rollbar_api/request'
|
|
13
|
+
require 'rollbar_api/resource'
|
|
14
|
+
require 'rollbar_api/version'
|
|
15
|
+
|
|
16
|
+
module RollbarApi
|
|
17
|
+
end
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module RollbarApi
|
|
2
4
|
class Account
|
|
3
|
-
|
|
5
|
+
@accounts = {}
|
|
4
6
|
|
|
5
7
|
def self.configure(account_name, account_access_token)
|
|
6
|
-
|
|
8
|
+
@accounts[account_name] = account_access_token
|
|
7
9
|
find(account_name)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def self.find(account_name)
|
|
11
|
-
account_access_token =
|
|
13
|
+
account_access_token = @accounts[account_name]
|
|
12
14
|
new(account_name, account_access_token) if account_access_token.present?
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
def self.all
|
|
16
|
-
|
|
18
|
+
@accounts.map { |account_name, _| find(account_name) }
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
def self.delete_all
|
|
20
|
-
|
|
22
|
+
@accounts = {}
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
attr_reader :name, :access_token
|
|
26
|
+
|
|
24
27
|
def initialize(name, access_token)
|
|
25
28
|
@name = name
|
|
26
29
|
@access_token = access_token
|
|
27
30
|
end
|
|
28
31
|
|
|
29
|
-
%i
|
|
32
|
+
%i[get post put delete head patch].each do |http_method|
|
|
30
33
|
define_method(http_method) do |path, params = {}|
|
|
31
34
|
params[:access_token] = access_token
|
|
32
35
|
response = Request.new(method: http_method, path: path, params: params).execute
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module RollbarApi
|
|
2
4
|
class Project
|
|
3
|
-
|
|
5
|
+
@projects = {}
|
|
4
6
|
|
|
5
7
|
def self.configure(project_name, project_access_token)
|
|
6
|
-
|
|
8
|
+
@projects[project_name] = project_access_token
|
|
7
9
|
find(project_name)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
def self.find(project_name)
|
|
11
|
-
project_access_token =
|
|
13
|
+
project_access_token = @projects[project_name]
|
|
12
14
|
new(project_name, project_access_token) if project_access_token.present?
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
def self.all
|
|
16
|
-
|
|
18
|
+
@projects.map { |project_name, _| find(project_name) }
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
def self.delete_all
|
|
20
|
-
|
|
22
|
+
@projects = {}
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
attr_reader :name, :access_token
|
|
26
|
+
|
|
24
27
|
def initialize(name, access_token)
|
|
25
28
|
@name = name
|
|
26
29
|
@access_token = access_token
|
|
27
30
|
end
|
|
28
31
|
|
|
29
|
-
%i
|
|
32
|
+
%i[get post put delete head patch].each do |http_method|
|
|
30
33
|
define_method(http_method) do |path, params = {}|
|
|
31
34
|
params[:access_token] = access_token
|
|
32
35
|
response = Request.new(method: http_method, path: path, params: params).execute
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module RollbarApi
|
|
2
4
|
class Request
|
|
3
5
|
attr_reader :method, :path, :params
|
|
6
|
+
|
|
4
7
|
def initialize(method:, path:, params:)
|
|
5
8
|
@method = method
|
|
6
|
-
path = "/#{path}" unless path.start_with?(
|
|
9
|
+
path = "/#{path}" unless path.start_with?('/')
|
|
7
10
|
@path = path
|
|
8
11
|
@params = params
|
|
9
12
|
end
|
|
@@ -18,17 +21,17 @@ module RollbarApi
|
|
|
18
21
|
end
|
|
19
22
|
|
|
20
23
|
request.headers.merge!({
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
'Accept' => 'application/json',
|
|
25
|
+
'Content-Type' => 'application/json',
|
|
23
26
|
})
|
|
24
27
|
request
|
|
25
28
|
end
|
|
26
29
|
end
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
private
|
|
29
32
|
|
|
30
33
|
def connection
|
|
31
|
-
Faraday.new(url:
|
|
34
|
+
Faraday.new(url: 'https://api.rollbar.com') do |faraday|
|
|
32
35
|
faraday.use Faraday::Response::RaiseError
|
|
33
36
|
faraday.response :logger, RollbarApi.logger, bodies: false
|
|
34
37
|
faraday.adapter Faraday.default_adapter
|
|
@@ -36,11 +39,9 @@ module RollbarApi
|
|
|
36
39
|
end
|
|
37
40
|
|
|
38
41
|
def body_to_json(body)
|
|
39
|
-
if body
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
nil
|
|
43
|
-
end
|
|
42
|
+
return if body.blank?
|
|
43
|
+
|
|
44
|
+
body.is_a?(Array) || body.is_a?(Hash) ? body.to_json : body
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RollbarApi
|
|
4
|
+
class Resource
|
|
5
|
+
attr_reader :response_json
|
|
6
|
+
|
|
7
|
+
def initialize(response)
|
|
8
|
+
response = response.body if response.is_a?(Faraday::Response)
|
|
9
|
+
@response_json = if response.is_a?(String)
|
|
10
|
+
JSON.parse(response)
|
|
11
|
+
else
|
|
12
|
+
response
|
|
13
|
+
end
|
|
14
|
+
@struct = ResourceStruct.new(@response_json, { recurse_over_arrays: true })
|
|
15
|
+
end
|
|
16
|
+
delegate :inspect, to: :@struct
|
|
17
|
+
|
|
18
|
+
def as_json(_options = {})
|
|
19
|
+
@response_json
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def method_missing(name, *args)
|
|
23
|
+
@struct.send(name, *args)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def respond_to_missing?(method_name, _include_private = false)
|
|
27
|
+
@struct.respond_to?(method_name)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class ResourceStruct < RecursiveOpenStruct
|
|
32
|
+
def inspect
|
|
33
|
+
%(#<RollbarApi::Resource: #{JSON.pretty_generate(@table)}>)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
data/rollbar-api.gemspec
CHANGED
|
@@ -1,36 +1,41 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
5
|
+
require 'rollbar_api/version'
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name =
|
|
8
|
+
spec.name = 'rollbar-api'
|
|
8
9
|
spec.version = RollbarApi::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
10
|
+
spec.authors = ['Peter Graham']
|
|
11
|
+
spec.email = ['peter@wealthsimple.com']
|
|
11
12
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
14
|
-
spec.homepage =
|
|
13
|
+
spec.summary = 'Rubygem for Rollbar REST and RQL APIs'
|
|
14
|
+
spec.description = "Rubygem for accessing Rollbar's full REST and RQL APIs."
|
|
15
|
+
spec.homepage = 'https://github.com/wealthsimple/rollbar-api'
|
|
15
16
|
|
|
16
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
17
18
|
f.match(%r{^(test|spec|features)/})
|
|
18
19
|
end
|
|
19
|
-
spec.bindir =
|
|
20
|
+
spec.bindir = 'exe'
|
|
20
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
|
-
spec.require_paths = [
|
|
22
|
-
spec.license =
|
|
22
|
+
spec.require_paths = ['lib']
|
|
23
|
+
spec.license = 'MIT'
|
|
24
|
+
|
|
25
|
+
spec.required_ruby_version = '>= 2.7.3'
|
|
23
26
|
|
|
24
|
-
spec.add_dependency
|
|
25
|
-
spec.add_dependency
|
|
26
|
-
spec.add_dependency
|
|
27
|
+
spec.add_dependency 'activesupport', '>= 4'
|
|
28
|
+
spec.add_dependency 'faraday', '< 1.0'
|
|
29
|
+
spec.add_dependency 'recursive-open-struct'
|
|
27
30
|
|
|
28
|
-
spec.add_development_dependency
|
|
29
|
-
spec.add_development_dependency
|
|
30
|
-
spec.add_development_dependency
|
|
31
|
-
spec.add_development_dependency
|
|
32
|
-
spec.add_development_dependency
|
|
33
|
-
spec.add_development_dependency
|
|
34
|
-
spec.add_development_dependency
|
|
35
|
-
spec.add_development_dependency
|
|
31
|
+
spec.add_development_dependency 'bundler'
|
|
32
|
+
spec.add_development_dependency 'dotenv'
|
|
33
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
35
|
+
spec.add_development_dependency 'rspec-collection_matchers'
|
|
36
|
+
spec.add_development_dependency 'rspec-its'
|
|
37
|
+
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.2'
|
|
38
|
+
spec.add_development_dependency 'rubocop'
|
|
39
|
+
spec.add_development_dependency 'webmock', '~> 3.0'
|
|
40
|
+
spec.add_development_dependency 'ws-style'
|
|
36
41
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rollbar-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Graham
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-05-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -56,16 +56,30 @@ dependencies:
|
|
|
56
56
|
name: bundler
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '0'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: dotenv
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
82
|
+
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: rake
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -95,7 +109,7 @@ dependencies:
|
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
110
|
version: '3.0'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rspec-
|
|
112
|
+
name: rspec-collection_matchers
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
115
|
- - ">="
|
|
@@ -109,7 +123,7 @@ dependencies:
|
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
124
|
version: '0'
|
|
111
125
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rspec-
|
|
126
|
+
name: rspec-its
|
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
|
114
128
|
requirements:
|
|
115
129
|
- - ">="
|
|
@@ -136,6 +150,20 @@ dependencies:
|
|
|
136
150
|
- - "~>"
|
|
137
151
|
- !ruby/object:Gem::Version
|
|
138
152
|
version: '0.2'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: rubocop
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - ">="
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - ">="
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '0'
|
|
139
167
|
- !ruby/object:Gem::Dependency
|
|
140
168
|
name: webmock
|
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -151,7 +179,7 @@ dependencies:
|
|
|
151
179
|
- !ruby/object:Gem::Version
|
|
152
180
|
version: '3.0'
|
|
153
181
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name:
|
|
182
|
+
name: ws-style
|
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
|
156
184
|
requirements:
|
|
157
185
|
- - ">="
|
|
@@ -171,25 +199,31 @@ executables: []
|
|
|
171
199
|
extensions: []
|
|
172
200
|
extra_rdoc_files: []
|
|
173
201
|
files:
|
|
174
|
-
- ".
|
|
202
|
+
- ".github/CODEOWNERS"
|
|
203
|
+
- ".github/workflows/main.yml"
|
|
175
204
|
- ".gitignore"
|
|
176
205
|
- ".rspec"
|
|
206
|
+
- ".rubocop.yml"
|
|
207
|
+
- ".ruby-version"
|
|
177
208
|
- Gemfile
|
|
209
|
+
- Gemfile.lock
|
|
178
210
|
- README.md
|
|
179
211
|
- Rakefile
|
|
180
212
|
- bin/console
|
|
181
213
|
- bin/setup
|
|
214
|
+
- catalog-info.yaml
|
|
182
215
|
- examples/list_account_users.rb
|
|
183
216
|
- examples/list_items.rb
|
|
184
217
|
- examples/rql_query.rb
|
|
185
218
|
- examples/top_active_items.rb
|
|
186
219
|
- lib/rollbar-api.rb
|
|
187
|
-
- lib/
|
|
188
|
-
- lib/
|
|
189
|
-
- lib/
|
|
190
|
-
- lib/
|
|
191
|
-
- lib/
|
|
192
|
-
- lib/
|
|
220
|
+
- lib/rollbar_api.rb
|
|
221
|
+
- lib/rollbar_api/account.rb
|
|
222
|
+
- lib/rollbar_api/logger.rb
|
|
223
|
+
- lib/rollbar_api/project.rb
|
|
224
|
+
- lib/rollbar_api/request.rb
|
|
225
|
+
- lib/rollbar_api/resource.rb
|
|
226
|
+
- lib/rollbar_api/version.rb
|
|
193
227
|
- rollbar-api.gemspec
|
|
194
228
|
homepage: https://github.com/wealthsimple/rollbar-api
|
|
195
229
|
licenses:
|
|
@@ -203,14 +237,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
203
237
|
requirements:
|
|
204
238
|
- - ">="
|
|
205
239
|
- !ruby/object:Gem::Version
|
|
206
|
-
version:
|
|
240
|
+
version: 2.7.3
|
|
207
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
242
|
requirements:
|
|
209
243
|
- - ">="
|
|
210
244
|
- !ruby/object:Gem::Version
|
|
211
245
|
version: '0'
|
|
212
246
|
requirements: []
|
|
213
|
-
rubygems_version: 3.
|
|
247
|
+
rubygems_version: 3.1.6
|
|
214
248
|
signing_key:
|
|
215
249
|
specification_version: 4
|
|
216
250
|
summary: Rubygem for Rollbar REST and RQL APIs
|
data/.circleci/config.yml
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
version: 2
|
|
2
|
-
|
|
3
|
-
defaults: &defaults
|
|
4
|
-
working_directory: ~/wealthsimple
|
|
5
|
-
docker:
|
|
6
|
-
- image: circleci/ruby:2.5.5
|
|
7
|
-
|
|
8
|
-
references:
|
|
9
|
-
attach_code_workspace: &attach_code_workspace
|
|
10
|
-
attach_workspace:
|
|
11
|
-
at: ~/wealthsimple
|
|
12
|
-
|
|
13
|
-
restore_bundle_dependencies: &restore_bundle_dependencies
|
|
14
|
-
run:
|
|
15
|
-
name: Restore bundle dependencies from workspace
|
|
16
|
-
command: bundle --path vendor/bundle
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
checkout_and_bundle:
|
|
20
|
-
<<: *defaults
|
|
21
|
-
steps:
|
|
22
|
-
- checkout
|
|
23
|
-
- run: bundle install --jobs=4 --retry=3 --path vendor/bundle
|
|
24
|
-
- persist_to_workspace:
|
|
25
|
-
root: .
|
|
26
|
-
paths: .
|
|
27
|
-
|
|
28
|
-
rspec:
|
|
29
|
-
<<: *defaults
|
|
30
|
-
steps:
|
|
31
|
-
- *attach_code_workspace
|
|
32
|
-
- *restore_bundle_dependencies
|
|
33
|
-
- run: bundle exec rspec
|
|
34
|
-
|
|
35
|
-
release:
|
|
36
|
-
<<: *defaults
|
|
37
|
-
steps:
|
|
38
|
-
- add_ssh_keys:
|
|
39
|
-
fingerprints:
|
|
40
|
-
- "46:b5:cb:ee:57:dc:14:95:31:be:12:13:4f:11:94:a4"
|
|
41
|
-
- *attach_code_workspace
|
|
42
|
-
- *restore_bundle_dependencies
|
|
43
|
-
- run:
|
|
44
|
-
name: Release to rubygems.org
|
|
45
|
-
command: |
|
|
46
|
-
mkdir -p ~/.ssh
|
|
47
|
-
touch ~/.ssh/known_hosts
|
|
48
|
-
echo "github.com,192.30.253.112 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
|
|
49
|
-
mkdir ~/.gem
|
|
50
|
-
echo ":rubygems_api_key: ${RUBYGEMS_API_KEY}" >> ~/.gem/credentials
|
|
51
|
-
chmod 600 ~/.gem/credentials
|
|
52
|
-
bundle exec rake release
|
|
53
|
-
|
|
54
|
-
workflows:
|
|
55
|
-
version: 2
|
|
56
|
-
build:
|
|
57
|
-
jobs:
|
|
58
|
-
- checkout_and_bundle:
|
|
59
|
-
context: wealthsimple
|
|
60
|
-
- rspec:
|
|
61
|
-
requires:
|
|
62
|
-
- checkout_and_bundle
|
|
63
|
-
- release:
|
|
64
|
-
context: wealthsimple
|
|
65
|
-
filters:
|
|
66
|
-
branches:
|
|
67
|
-
only: master
|
|
68
|
-
requires:
|
|
69
|
-
- rspec
|
data/lib/rollbar-api/logger.rb
DELETED
data/lib/rollbar-api/resource.rb
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module RollbarApi
|
|
2
|
-
class Resource
|
|
3
|
-
attr_reader :response_json
|
|
4
|
-
|
|
5
|
-
def initialize(response)
|
|
6
|
-
response = response.body if response.is_a?(Faraday::Response)
|
|
7
|
-
@response_json = if response.is_a?(String)
|
|
8
|
-
JSON.parse(response)
|
|
9
|
-
else
|
|
10
|
-
response
|
|
11
|
-
end
|
|
12
|
-
@struct = ResourceStruct.new(@response_json, {recurse_over_arrays: true})
|
|
13
|
-
end
|
|
14
|
-
delegate :inspect, to: :@struct
|
|
15
|
-
|
|
16
|
-
def as_json(options = {})
|
|
17
|
-
@response_json
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def method_missing(name, *args)
|
|
21
|
-
@struct.send(name, *args)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
class ResourceStruct < RecursiveOpenStruct
|
|
26
|
-
def inspect
|
|
27
|
-
%{#<RollbarApi::Resource: #{JSON.pretty_generate(@table)}>}
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
data/lib/rollbar-api/version.rb
DELETED