lita-hcadmin 0.3.3

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dbb668a3f1776c2b498ad15764a56d7f1b309347
4
+ data.tar.gz: 27af7e8a66abb2e65e4ba40c38ab87688c28331a
5
+ SHA512:
6
+ metadata.gz: 7b888e6b7888f5d3412797d9cd28a33d293beb350861c9ec7b2eb72647ca5fc4ea918b05a99bb96b99c254033ef5f331bf5670346a810e0af543e3b3224fe27e
7
+ data.tar.gz: 57975f9f90f363f2f24ddee9ababc163da5f785ee6b0280298c18a3b8efbb47087a93f40a695cbf6be0c384dda39b4feff423c7eb3220a921a0c60b4b78f91ed
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ .DS_Store
2
+ *.gem
3
+ *.rbc
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ *.gem
20
+ .coveralls.yml
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/.rubocop.yml ADDED
@@ -0,0 +1,28 @@
1
+ AlignParameters:
2
+ Enabled: false
3
+
4
+ Encoding:
5
+ Enabled: false
6
+
7
+ LineLength:
8
+ Max: 240
9
+
10
+ Documentation:
11
+ Enabled: false
12
+
13
+ ClassLength:
14
+ Max: 400
15
+
16
+ AbcSize:
17
+ Max: 60
18
+
19
+ MethodLength:
20
+ Max: 30
21
+
22
+ GuardCause:
23
+ Enabled: false
24
+
25
+ AllCops:
26
+ Exclude:
27
+ - 'Rakefile'
28
+ - 'lita-hcadmin.gemspec'
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0
4
+ sudo: false
5
+ addons:
6
+ apt:
7
+ sources:
8
+ - chef-current-precise
9
+ packages:
10
+ - chefdk
11
+
12
+ before_script:
13
+ - eval "$(/opt/chefdk/bin/chef shell-init bash)"
14
+ script:
15
+ - /opt/chefdk/embedded/bin/bundle install
16
+ - /opt/chefdk/embedded/bin/bundle exec rake
data/CHANGELOG.md ADDED
@@ -0,0 +1,41 @@
1
+ # lita-hcadmin
2
+
3
+ [0.3.3]
4
+ ---------
5
+ - [desktophero] - Fix unarchive logic for multi-word names
6
+
7
+ [0.3.2]
8
+ ---------
9
+ - [desktophero] - Fix unarchive logic for unfound rooms
10
+
11
+ [0.3.1]
12
+ ---------
13
+ - [desktophero] - Unarchive room as a room change admin
14
+
15
+ [0.2.19]
16
+ ---------
17
+ - [desktophero] - Allow an existing user to send an invite request to admins (hipchat sponsor <email>)
18
+
19
+ [0.2.1]
20
+ ---------
21
+ - [desktophero] - Room Count request method update
22
+
23
+ [0.2.0]
24
+ ---------
25
+ - [desktophero] - Switch HTTP Client to Faraday; response includes HTTP response and body for HipChatAPI commands
26
+
27
+ [0.1.15]
28
+ ---------
29
+ - [desktophero] - Added time to respond to room owner request; updated help return text
30
+
31
+ [0.1.15]
32
+ ---------
33
+ - [desktophero] - Added time to respond to more functions; update to README
34
+
35
+ [0.1.13]
36
+ ---------
37
+ - [desktophero] - Identify hipchat status
38
+
39
+ [0.1.0]
40
+ ---------
41
+ - [desktophero] - Initial cookbook
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'rspec'
6
+ gem 'fakeredis'
7
+ gem 'simplecov'
8
+ gem 'coveralls'
9
+ gem 'webmock'
10
+ gem 'rubocop'
data/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016, Target Corporation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,163 @@
1
+ # lita-hcadmin
2
+
3
+ [![Build Status](https://travis-ci.org/target/lita-hipchat-admin.svg?branch=master)](https://travis-ci.org/target/lita-hipchat-admin)
4
+
5
+ ## Why?
6
+ This handler for Lita (https://www.lita.io/) extends the Lita HipChat adapter (https://github.com/litaio/lita-hipchat)
7
+ and focuses on allowing admin type commands and visibility into the HipChat account. See commands below.
8
+
9
+ ## Installation
10
+
11
+ Add lita-hcadmin to your Lita instance's Gemfile:
12
+
13
+ ``` ruby
14
+ gem "lita-hcadmin"
15
+ ```
16
+
17
+ ## Setup
18
+ Only validated with Lita v4.4 and newer.
19
+ Only validated with HipChat SaaS.
20
+
21
+ ## Configuration
22
+
23
+ ```ruby
24
+ Lita.configure do |config|
25
+ config.handlers.hcadmin.v1_notify_token = '<v1_notification_token>' # for using HipChat API V1 notification scopes; required
26
+ config.handlers.hcadmin.v1_admin_token = '<v1_admin_token>' # for using HipChat API V1 administration scopes; required
27
+ config.handlers.hcadmin.v2_admin_token = '<v2_admin_token>' # for using HipChat API V2 administration scopes; required
28
+ config.handlers.hcadmin.http_proxy = "<some_company_proxy>" # if a proxy is used; optional
29
+ config.handlers.hcadmin.email_dist_list = "user@company.com" # valid email address to send sponsor requests
30
+ config.handlers.hcadmin.smtp_server = "smtp.company.com" # to specify the smtp server for emails
31
+ config.handlers.hcadmin.room_change_admins = ["hipchat", "user", "array", "of", "menionnames"] #
32
+ config.handlers.hcadmin.hipchat_account_name = "<name of account>"
33
+ end
34
+ ```
35
+
36
+
37
+ ## Usage
38
+
39
+ Help output:
40
+ ```
41
+ identify room owner ROOM_NAME - Returns the mention name of the room owner.
42
+ identify hipchat admins - Returns the mention name of the HipChat Admins.
43
+ identify user count - Returns the count of users in <account_name>.
44
+ identify room count - Returns the count of rooms in <account_name>.
45
+ identify room change admins - Returns a list of who can change room ownership
46
+ identify status - Returns the status of HipChat.
47
+ hipchat sponsor EMAIL ADDRESS - Generates an invite to the person being sponsoered. Use a valid Target.com email address
48
+ ```
49
+
50
+
51
+ ### identify room owner
52
+ ```
53
+ identify room owner foobar
54
+ bot: Getting rooms ... one moment
55
+ Getting room id ... another moment
56
+ Getting the user name from the user ID ... almost there
57
+ ```
58
+ Either a room owner is identified:
59
+ ```
60
+ The owner of foobar is MentionName
61
+ ```
62
+ or, the bot responds with details
63
+ ```
64
+ Room foobar apparently does not have an owner or I could not find a room with that name ( 8 s. to respond )
65
+ ```
66
+
67
+
68
+ ### identify hipchat Admins
69
+ ```
70
+ identify hipchat admins
71
+ bot: Admin search takes a moment ...
72
+
73
+ bot: MentionName1
74
+ MentionName2
75
+ MentionName3
76
+ MentionName4
77
+ ```
78
+ #### data above is sample information
79
+
80
+ ### identify room count
81
+ ```
82
+ identify room count
83
+ bot: Rooms in hipchat: 2213 ( 2 s. to respond )
84
+ ```
85
+ #### data above is sample information
86
+
87
+ ### identify user count
88
+ ```
89
+ identify user count
90
+ bot: Users in hipchat: 4971 ( 15 s. to respond )
91
+ ```
92
+ #### data above is sample information
93
+
94
+ ### identify status
95
+ ```
96
+ identify status
97
+ bot: Status of hipchat: Code: 200 => {"status": "okay"} ( 0 s. to respond )
98
+ ```
99
+ -- data above is sample information
100
+
101
+ ### hipchat sponsor <EMAIL_ADDRESS>
102
+ ```
103
+ hipchat sponsor <email_account@company.com>
104
+ The email address of email_account@company.com was not found. Generating request to admins
105
+ Admins have been notified of your request to add email_account@company.com, @requestor_name
106
+ Message to admins sent
107
+ ```
108
+
109
+ This generates an email to the address defined in `Lita.config.handlers.hcadmin.email_dist_list`
110
+
111
+ ### identify room change admins
112
+ ```
113
+ identify room change admins
114
+ bot: Users who can change room ownership
115
+ MentionName1
116
+ MentionName2
117
+ ```
118
+
119
+ The list of names is defined in `Lita.config.handlers.hcadmin.room_change_admins` as an array of MentionNames
120
+
121
+ ### room owner change NewOwnerMentionName RoomName
122
+ ```
123
+ room owner change NewOwner RoomName
124
+ bot: Room update request sent. HTTP response code: 204
125
+ ```
126
+
127
+ If the user can't be found
128
+ ```
129
+ room owner change FakeName RoomName
130
+ bot: Uh-oh, 404 returned! The user FakeName not found
131
+ ```
132
+
133
+ If the room can't be found
134
+ ```
135
+ room owner change RealName FakeRoom
136
+ bot: Uh-oh, 404 returned! The room FakeRoom not found
137
+ ```
138
+
139
+ ### room unarchive RoomName
140
+ ```
141
+ room unarchive RoomName
142
+ bot: Room update request sent. HTTP response code: 204
143
+ ```
144
+
145
+ If the room can't be found
146
+ ```
147
+ room owner change RealName FakeRoom
148
+ bot: Uh-oh, 404 returned! The room FakeRoom not found
149
+ ```
150
+
151
+
152
+ ## TO-DOs
153
+ The Issues for this repo will be used to accept, collaborate, and complete `TO-DOs`
154
+
155
+ ## License and Author
156
+
157
+ Author:: Jason Walker (<jason.walker@target.com> , [desktophero])
158
+
159
+ ```text
160
+ Copyright:: 2016, Target Corporation
161
+
162
+ See License for details
163
+ ```
data/Rakefile ADDED
@@ -0,0 +1,26 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+
5
+ task default: :ci_checks
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ desc 'Run all style tests'
10
+
11
+ namespace :style do
12
+ desc 'Test ruby style against guidelines from rubocop'
13
+ task :rubocop do
14
+ RuboCop::RakeTask.new
15
+ end
16
+ end
17
+
18
+ task :style do
19
+ Rake.application.in_namespace(:style) { |x| x.tasks.each { |t| t.invoke } }
20
+ end
21
+
22
+ task :ci_checks do
23
+ # Rake::Task['style'].invoke
24
+ Rake::Task['spec'].invoke
25
+ Rake::Task['style'].invoke
26
+ end