dev_orbit 0.0.1 → 0.0.6
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/.env.sample +4 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile.lock +24 -1
- data/README.md +22 -0
- data/bin/dev_orbit +27 -0
- data/dev_orbit.gemspec +4 -2
- data/lib/dev_orbit/client.rb +1 -1
- data/lib/dev_orbit/interactions/comment.rb +20 -9
- data/lib/dev_orbit/version.rb +1 -1
- data/scripts/check_comments.rb +17 -0
- metadata +38 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c91ef071ae7615cf957e49580b99d384b842227bdb5f16557115ae8a81449dfc
|
4
|
+
data.tar.gz: f0d90c3fe043997e7ca812572b3a81b26e261a51b53d64ca98babc0a002e0287
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 621bd01a4bec7709a5a5ec196dd2bb1235c1eb6334bccb2cc7384c090fee3e8ab10419ccd180e1675d5cdf4694db17e6ccc2d0c7a5b50246cc732bd2e438f798
|
7
|
+
data.tar.gz: 6f988344ad296cfc1ce2e7defcc6534946a511eeb272079689e2fff375ea37824cf0209a59c7ec3879b1ea934bcf43f03b3bc8291be01edbb35df9dada392b74
|
data/.env.sample
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,24 @@
|
|
1
1
|
## [0.0.1] - 2021-03-06
|
2
2
|
|
3
3
|
- Initial release
|
4
|
+
|
5
|
+
## [0.0.2] - 2021-03-09
|
6
|
+
|
7
|
+
- Add a CLI to the gem to run the gem's operations
|
8
|
+
|
9
|
+
## [0.0.3] - 2021-03-09
|
10
|
+
|
11
|
+
- Bug fix for the CLI functionality, now operational
|
12
|
+
|
13
|
+
## [0.0.4] - 2021-03-10
|
14
|
+
|
15
|
+
- Bug fix for stripping the HTML from the DEV blog post comment body
|
16
|
+
|
17
|
+
## [0.0.5] - 2021-03-10
|
18
|
+
|
19
|
+
- Print out Orbit API response
|
20
|
+
|
21
|
+
## [0.0.6] - 2021-03-10
|
22
|
+
|
23
|
+
- Fix misnamed env var in client instantiation
|
24
|
+
- Add a sample `.env` file
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,23 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dev_orbit (0.0.
|
4
|
+
dev_orbit (0.0.4)
|
5
|
+
actionview (~> 6.1)
|
5
6
|
activesupport (~> 6.1)
|
6
7
|
http (~> 4.4)
|
7
8
|
json (~> 2.5)
|
9
|
+
thor (~> 1.1)
|
8
10
|
zeitwerk (~> 2.4)
|
9
11
|
|
10
12
|
GEM
|
11
13
|
remote: https://rubygems.org/
|
12
14
|
specs:
|
15
|
+
actionview (6.1.3)
|
16
|
+
activesupport (= 6.1.3)
|
17
|
+
builder (~> 3.1)
|
18
|
+
erubi (~> 1.4)
|
19
|
+
rails-dom-testing (~> 2.0)
|
20
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
13
21
|
activesupport (6.1.3)
|
14
22
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
15
23
|
i18n (>= 1.6, < 2)
|
@@ -19,13 +27,16 @@ GEM
|
|
19
27
|
addressable (2.7.0)
|
20
28
|
public_suffix (>= 2.0.2, < 5.0)
|
21
29
|
ast (2.4.2)
|
30
|
+
builder (3.2.4)
|
22
31
|
byebug (11.1.3)
|
23
32
|
concurrent-ruby (1.1.8)
|
24
33
|
crack (0.4.5)
|
25
34
|
rexml
|
35
|
+
crass (1.0.6)
|
26
36
|
diff-lcs (1.4.4)
|
27
37
|
domain_name (0.5.20190701)
|
28
38
|
unf (>= 0.0.5, < 1.0.0)
|
39
|
+
erubi (1.10.0)
|
29
40
|
ffi (1.15.0)
|
30
41
|
ffi-compiler (1.0.1)
|
31
42
|
ffi (>= 1.0.0)
|
@@ -44,11 +55,22 @@ GEM
|
|
44
55
|
i18n (1.8.9)
|
45
56
|
concurrent-ruby (~> 1.0)
|
46
57
|
json (2.5.1)
|
58
|
+
loofah (2.9.0)
|
59
|
+
crass (~> 1.0.2)
|
60
|
+
nokogiri (>= 1.5.9)
|
47
61
|
minitest (5.14.4)
|
62
|
+
nokogiri (1.11.1-x86_64-darwin)
|
63
|
+
racc (~> 1.4)
|
48
64
|
parallel (1.20.1)
|
49
65
|
parser (3.0.0.0)
|
50
66
|
ast (~> 2.4.1)
|
51
67
|
public_suffix (4.0.6)
|
68
|
+
racc (1.5.2)
|
69
|
+
rails-dom-testing (2.0.3)
|
70
|
+
activesupport (>= 4.2.0)
|
71
|
+
nokogiri (>= 1.6)
|
72
|
+
rails-html-sanitizer (1.3.0)
|
73
|
+
loofah (~> 2.3)
|
52
74
|
rainbow (3.0.0)
|
53
75
|
rake (13.0.3)
|
54
76
|
regexp_parser (2.1.1)
|
@@ -78,6 +100,7 @@ GEM
|
|
78
100
|
rubocop-ast (1.4.1)
|
79
101
|
parser (>= 2.7.1.5)
|
80
102
|
ruby-progressbar (1.11.0)
|
103
|
+
thor (1.1.0)
|
81
104
|
tzinfo (2.0.4)
|
82
105
|
concurrent-ruby (~> 1.0)
|
83
106
|
unf (0.1.4)
|
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# DEV.to Interactions to Orbit Workspace
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/dev_orbit)
|
4
|
+
[](code_of_conduct.md)
|
5
|
+
|
3
6
|
This is a Ruby gem that can be used to integrate your DEV interactions, like DEV comments on blog posts, into your organization's Orbit workspace.
|
4
7
|
|
5
8
|
## Installation
|
@@ -16,6 +19,15 @@ gem 'dev_orbit'
|
|
16
19
|
|
17
20
|
To instantiate a DevOrbit client, you can either pass along your credentials for DEV and Orbit directly to the instantiation or retain them in your environment variables.
|
18
21
|
|
22
|
+
The following are the expected environment variables:
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
ORBIT_API_KEY
|
26
|
+
ORBIT_WORKSPACE_ID
|
27
|
+
DEV_API_KEY
|
28
|
+
DEV_USERNAME
|
29
|
+
```
|
30
|
+
|
19
31
|
With the credentials as environment variables:
|
20
32
|
|
21
33
|
```ruby
|
@@ -45,6 +57,16 @@ This method will fetch all your articles from DEV, gather their respective comme
|
|
45
57
|
|
46
58
|
You can run this a daily cron job, for example, to add your newest DEV comments as activities in your Orbit workspace.
|
47
59
|
|
60
|
+
### CLI
|
61
|
+
|
62
|
+
You can also use the built-in CLI to perform the following operations:
|
63
|
+
|
64
|
+
* Check for new DEV comments and post them to Orbit
|
65
|
+
|
66
|
+
```bash
|
67
|
+
$ ORBIT_API_KEY='...' ORBIT_WORKSPACE='...' DEV_API_KEY='...' DEV_USERNAME='...' bundle exec dev_orbit --check-comments
|
68
|
+
```
|
69
|
+
|
48
70
|
## Contributing
|
49
71
|
|
50
72
|
Bug reports and pull requests are welcome on GitHub at https://github.com/bencgreenberg/dev_orbit. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/bencgreenberg/dev_orbit/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/dev_orbit
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
check_comments = false
|
5
|
+
|
6
|
+
options = {}
|
7
|
+
choices = OptionParser.new do |opts|
|
8
|
+
opts.banner = "Usage: dev_orbit --check-comments"
|
9
|
+
opts.on("-h", "--help", "Prints help instructions") do
|
10
|
+
puts opts
|
11
|
+
exit
|
12
|
+
end
|
13
|
+
opts.on("--check-comments", "Check for new DEV comments") do
|
14
|
+
check_comments = true
|
15
|
+
end
|
16
|
+
end.parse!
|
17
|
+
|
18
|
+
$LOAD_PATH.unshift(File.expand_path('../lib/dev_orbit', __dir__))
|
19
|
+
|
20
|
+
require_relative '../lib/dev_orbit'
|
21
|
+
require_relative '../scripts/check_comments'
|
22
|
+
|
23
|
+
if check_comments
|
24
|
+
puts "Checking for new DEV comments within the past day and posting them to your Orbit workspace..."
|
25
|
+
ARGV[0] = 'render'
|
26
|
+
DevOrbit::Scripts::CheckComments.start(ARGV)
|
27
|
+
end
|
data/dev_orbit.gemspec
CHANGED
@@ -23,16 +23,18 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
24
24
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
25
25
|
end
|
26
|
-
spec.bindir = "
|
27
|
-
spec.executables = spec.files.grep(%r{
|
26
|
+
spec.bindir = "bin"
|
27
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
30
|
# Uncomment to register a new dependency of your gem
|
31
31
|
# spec.add_dependency "example-gem", "~> 1.0"
|
32
32
|
spec.add_dependency "activesupport", "~> 6.1"
|
33
|
+
spec.add_dependency "actionview", "~> 6.1"
|
33
34
|
spec.add_dependency "http", "~> 4.4"
|
34
35
|
spec.add_dependency "json", "~> 2.5"
|
35
36
|
spec.add_dependency "zeitwerk", "~> 2.4"
|
37
|
+
spec.add_dependency "thor", "~> 1.1"
|
36
38
|
spec.add_development_dependency "rspec", "~> 3.4"
|
37
39
|
spec.add_development_dependency "webmock", "~> 3.12"
|
38
40
|
|
data/lib/dev_orbit/client.rb
CHANGED
@@ -29,7 +29,7 @@ module DevOrbit
|
|
29
29
|
|
30
30
|
def initialize(params = {})
|
31
31
|
@orbit_api_key = params.fetch(:orbit_api_key, ENV["ORBIT_API_KEY"])
|
32
|
-
@orbit_workspace = params.fetch(:orbit_workspace, ENV["
|
32
|
+
@orbit_workspace = params.fetch(:orbit_workspace, ENV["ORBIT_WORKSPACE_ID"])
|
33
33
|
@dev_api_key = params.fetch(:dev_api_key, ENV["DEV_API_KEY"])
|
34
34
|
@dev_username = params.fetch(:dev_username, ENV["DEV_USERNAME"])
|
35
35
|
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "net/http"
|
4
4
|
require "json"
|
5
|
+
require "action_view"
|
5
6
|
|
6
7
|
module DevOrbit
|
7
8
|
module Interactions
|
@@ -29,7 +30,17 @@ module DevOrbit
|
|
29
30
|
req["Content-Type"] = "application/json"
|
30
31
|
req["Authorization"] = "Bearer #{@api_key}"
|
31
32
|
|
32
|
-
req.body =
|
33
|
+
req.body = construct_body
|
34
|
+
|
35
|
+
req.body = req.body.to_json
|
36
|
+
|
37
|
+
response = http.request(req)
|
38
|
+
|
39
|
+
puts JSON.parse(response.body)
|
40
|
+
end
|
41
|
+
|
42
|
+
def construct_body
|
43
|
+
hash = {
|
33
44
|
activity: {
|
34
45
|
activity_type: "dev:comment",
|
35
46
|
key: "dev-comment-#{@id}",
|
@@ -48,17 +59,15 @@ module DevOrbit
|
|
48
59
|
}
|
49
60
|
}
|
50
61
|
|
51
|
-
|
62
|
+
hash[:activity][:member].merge!(twitter: @commenter[:twitter]) if @commenter[:twitter]
|
52
63
|
|
53
|
-
|
64
|
+
hash[:activity][:member].merge!(github: @commenter[:github]) if @commenter[:github]
|
54
65
|
|
55
|
-
|
56
|
-
|
57
|
-
response = http.request(req)
|
58
|
-
|
59
|
-
JSON.parse(response.body)
|
66
|
+
hash
|
60
67
|
end
|
61
68
|
|
69
|
+
private
|
70
|
+
|
62
71
|
def construct_commenter(commenter)
|
63
72
|
hash = {
|
64
73
|
'name': commenter[:name],
|
@@ -77,7 +86,9 @@ module DevOrbit
|
|
77
86
|
end
|
78
87
|
|
79
88
|
def sanitize_comment(comment)
|
80
|
-
comment.
|
89
|
+
comment = ActionView::Base.full_sanitizer.sanitize(comment)
|
90
|
+
|
91
|
+
comment.gsub("\n", " ")
|
81
92
|
end
|
82
93
|
end
|
83
94
|
end
|
data/lib/dev_orbit/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dev_orbit"
|
5
|
+
require "thor"
|
6
|
+
|
7
|
+
module DevOrbit
|
8
|
+
module Scripts
|
9
|
+
class CheckComments < Thor
|
10
|
+
desc "render", "check for new DEV comments and push them to Orbit"
|
11
|
+
def render
|
12
|
+
client = DevOrbit::Client.new
|
13
|
+
client.comments
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dev_orbit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Greenberg
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '6.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: actionview
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '6.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '6.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: http
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '2.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: thor
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.1'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.1'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: rspec
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,10 +126,14 @@ description: This gem integrates DEV blog interactions like comments, etc. into
|
|
98
126
|
Orbit workspace
|
99
127
|
email:
|
100
128
|
- ben.greenberg@hey.com
|
101
|
-
executables:
|
129
|
+
executables:
|
130
|
+
- console
|
131
|
+
- dev_orbit
|
132
|
+
- setup
|
102
133
|
extensions: []
|
103
134
|
extra_rdoc_files: []
|
104
135
|
files:
|
136
|
+
- ".env.sample"
|
105
137
|
- ".gitignore"
|
106
138
|
- ".rspec"
|
107
139
|
- ".rubocop.yml"
|
@@ -113,6 +145,7 @@ files:
|
|
113
145
|
- README.md
|
114
146
|
- Rakefile
|
115
147
|
- bin/console
|
148
|
+
- bin/dev_orbit
|
116
149
|
- bin/setup
|
117
150
|
- dev_orbit.gemspec
|
118
151
|
- lib/dev_orbit.rb
|
@@ -121,6 +154,7 @@ files:
|
|
121
154
|
- lib/dev_orbit/interactions/comment.rb
|
122
155
|
- lib/dev_orbit/orbit.rb
|
123
156
|
- lib/dev_orbit/version.rb
|
157
|
+
- scripts/check_comments.rb
|
124
158
|
homepage: https://github.com/bencgreenberg/dev_orbit
|
125
159
|
licenses:
|
126
160
|
- MIT
|