factor-connector-pagerduty 0.0.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 +7 -0
- data/lib/factor/connector/pagerduty.rb +120 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3c0605d31b470bac8b3c4d647063b701f9519968
|
4
|
+
data.tar.gz: 378f879823348f57e791d1991c58dda6195d5c79
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7080c64c6cc763c14f8b7ceaac467e5b090fb96db462f21498cd5b5c8e7d0ec30ee0c82c9944460233145630107195d42e690ea07be79039e651249a4593176f
|
7
|
+
data.tar.gz: d42c50c50ce90a7c222c13f9f8b37df98c44048813d22148de3db6e5f6e2f91f19e149032eaa62be5f7f94e55120338ef39e21fd4cbe74448762f75e1c81f8e5
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'factor-connector-api'
|
2
|
+
require 'pagerduty'
|
3
|
+
require 'httparty'
|
4
|
+
|
5
|
+
Factor::Connector.service 'pagerduty' do
|
6
|
+
action 'create' do |params|
|
7
|
+
|
8
|
+
service_key = params['service_key']
|
9
|
+
description = params['description']
|
10
|
+
incident_key = params['incident_key']
|
11
|
+
client = params['client']
|
12
|
+
client_url = params['client_url']
|
13
|
+
|
14
|
+
fail 'A description is required' unless description
|
15
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
16
|
+
|
17
|
+
content = {
|
18
|
+
incident_key: incident_key,
|
19
|
+
client: client,
|
20
|
+
client_url: client_url
|
21
|
+
}
|
22
|
+
|
23
|
+
info 'Generating a new incident'
|
24
|
+
begin
|
25
|
+
service = Pagerduty.new(service_key)
|
26
|
+
incident = service.trigger(description, content)
|
27
|
+
rescue
|
28
|
+
fail 'Failed to send incident'
|
29
|
+
end
|
30
|
+
action_callback incident
|
31
|
+
end
|
32
|
+
|
33
|
+
action 'retrieve' do |params|
|
34
|
+
|
35
|
+
service_key = params['service_key']
|
36
|
+
incident_key = params['incident_key']
|
37
|
+
|
38
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
39
|
+
fail 'An incident key is required' unless incident_key
|
40
|
+
|
41
|
+
info 'Retrieving the incident information'
|
42
|
+
begin
|
43
|
+
service = Pagerduty.new(service_key)
|
44
|
+
incident = service.get_incident(incident_key)
|
45
|
+
rescue
|
46
|
+
fail 'Failed to find the incident'
|
47
|
+
end
|
48
|
+
action_callback incident
|
49
|
+
end
|
50
|
+
|
51
|
+
action 'acknowledge' do |params|
|
52
|
+
|
53
|
+
service_key = params['service_key']
|
54
|
+
incident_key = params['incident_key']
|
55
|
+
|
56
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
57
|
+
fail 'An incident key is required' unless incident_key
|
58
|
+
|
59
|
+
info 'Acknowleding the incident'
|
60
|
+
begin
|
61
|
+
service = Pagerduty.new(service_key)
|
62
|
+
incident = service.get_incident(incident_key)
|
63
|
+
response = incident.acknowledge
|
64
|
+
rescue
|
65
|
+
fail 'Failed to find the incident'
|
66
|
+
end
|
67
|
+
action_callback response
|
68
|
+
end
|
69
|
+
|
70
|
+
action 'resolve' do |params|
|
71
|
+
|
72
|
+
service_key = params['service_key']
|
73
|
+
incident_key = params['incident_key']
|
74
|
+
|
75
|
+
fail 'A Service Key (service_key) must be provided' unless service_key
|
76
|
+
fail 'An incident key is required' unless incident_key
|
77
|
+
|
78
|
+
info 'Resolving the incident'
|
79
|
+
begin
|
80
|
+
service = Pagerduty.new(service_key)
|
81
|
+
incident = service.get_incident(incident_key)
|
82
|
+
response = incident.resolve
|
83
|
+
rescue
|
84
|
+
fail 'Failed to find the incident'
|
85
|
+
end
|
86
|
+
action_callback response
|
87
|
+
end
|
88
|
+
|
89
|
+
action 'list' do |params|
|
90
|
+
|
91
|
+
subdomain = params['subdomain']
|
92
|
+
access_key = params['access_key']
|
93
|
+
|
94
|
+
fail 'A subdomain must be provided' unless subdomain
|
95
|
+
fail 'An Access Key (access_key) is required' unless access_key
|
96
|
+
|
97
|
+
info 'Loading incidents'
|
98
|
+
begin
|
99
|
+
uri = "https://#{subdomain}.pagerduty.com/api/v1/incidents"
|
100
|
+
access_string = "Token token=#{access_key}"
|
101
|
+
response = HTTParty.get(
|
102
|
+
uri,
|
103
|
+
headers: {
|
104
|
+
'Content-Type' => 'application/json', 'Authorization' => access_string
|
105
|
+
}
|
106
|
+
)
|
107
|
+
rescue
|
108
|
+
fail 'Failed to load incidents'
|
109
|
+
end
|
110
|
+
|
111
|
+
info 'Parsing the response'
|
112
|
+
begin
|
113
|
+
incident_list = JSON.parse(response.body)
|
114
|
+
rescue
|
115
|
+
fail 'Failed to parse the response from the PagerDuty API'
|
116
|
+
end
|
117
|
+
|
118
|
+
action_callback incident_list
|
119
|
+
end
|
120
|
+
end
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: factor-connector-pagerduty
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josie Wright
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: factor-connector-api
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pagerduty
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httparty
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.13.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.13.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: codeclimate-test-reporter
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.1.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.1.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 10.3.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 10.3.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: wrong
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.7.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.7.1
|
111
|
+
description:
|
112
|
+
email:
|
113
|
+
- jozwright@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- lib/factor/connector/pagerduty.rb
|
119
|
+
homepage: https://factor.io
|
120
|
+
licenses: []
|
121
|
+
metadata: {}
|
122
|
+
post_install_message:
|
123
|
+
rdoc_options: []
|
124
|
+
require_paths:
|
125
|
+
- lib
|
126
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
requirements: []
|
137
|
+
rubyforge_project:
|
138
|
+
rubygems_version: 2.2.2
|
139
|
+
signing_key:
|
140
|
+
specification_version: 4
|
141
|
+
summary: PagerDuty Factor.io Connector
|
142
|
+
test_files: []
|