lita-kanban 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2376114c685aac234101354932f8c786bd2e39f1
4
+ data.tar.gz: f9a8ff98eae483c6536dff7f427a8e7fb260b71c
5
+ SHA512:
6
+ metadata.gz: 4d0bd2c47e17bc1170ce691fd2f430d5fac0d58c66c59efc0b9b99dc9694c1ad7e080b8a57cf98631c27fdf8e3709674a37a9b6a69e297572fb9f14fbfe58339
7
+ data.tar.gz: dd5e3829a09bca0ecf861b8a3e1b790b4f44b8e9a08e905789930ac5749dd3b351a904a621a98df056c767d348a70c8eff45d365ee30079fce95544dbcbf9544
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ vendor/bundle
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,9 @@
1
+ # lita-kanban
2
+
3
+ A lita handler for build a Kanban board from Pivotal Tracker.
4
+
5
+ ## License
6
+
7
+ [The MIT License (MIT)](https://opensource.org/licenses/mit-license.php)
8
+
9
+ © 2016 Shoma SATO
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,12 @@
1
+ require "lita"
2
+
3
+ Lita.load_locales Dir[File.expand_path(
4
+ File.join("..", "..", "locales", "*.yml"), __FILE__
5
+ )]
6
+
7
+ require "lita/handlers/kanban"
8
+
9
+ Lita::Handlers::Kanban.template_root File.expand_path(
10
+ File.join("..", "..", "templates"),
11
+ __FILE__
12
+ )
@@ -0,0 +1,41 @@
1
+ require 'tracker_api'
2
+
3
+ module Lita
4
+ module Handlers
5
+ class Kanban < Handler
6
+ config :pivotal_tracker_token, required: true, type: String
7
+ config :pivotal_tracker_project_id, required: true
8
+
9
+ route /^kanban\s+(.+)\s+(.+)/i, :kanban, command: true, help: {
10
+ "kanban after_story_id before_story_id" => "Return stories names."
11
+ }
12
+
13
+ def kanban(response)
14
+ after_story_id = response.matches[0][0]
15
+ before_story_id = response.matches[0][1]
16
+ titles = stories(after_story_id, before_story_id).map do |s|
17
+ s.name
18
+ end.join("\n")
19
+ response.reply(titles)
20
+ end
21
+
22
+ def stories(after_story_id, before_story_id)
23
+ if Lita.config.handlers.kanban.pivotal_tracker_token.nil?
24
+ Lita.logger.error('Missing Pivotal Tracker token')
25
+ fail 'Missing Pivotal Tracker token'
26
+ end
27
+
28
+ if Lita.config.handlers.kanban.pivotal_tracker_project_id.nil?
29
+ Lita.logger.error('Missing Pivotal Tracker project id')
30
+ fail 'Missing Pivotal Tracker project id'
31
+ end
32
+
33
+ TrackerApi::Client.new(token: config.pivotal_tracker_token)
34
+ .project(config.pivotal_tracker_project_id)
35
+ .stories(after_story_id: after_story_id, before_story_id: before_story_id)
36
+ end
37
+
38
+ Lita.register_handler(self)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "lita-kanban"
3
+ spec.version = "0.1.0"
4
+ spec.authors = ["Shoma SATO"]
5
+ spec.email = ["noir.neo.04@gmail.com"]
6
+ spec.description = "A lita handler for build a Kanban board from Pivotal Tracker."
7
+ spec.summary = "A lita handler for build a Kanban board from Pivotal Tracker."
8
+ spec.homepage = ""
9
+ spec.license = "MIT"
10
+ spec.metadata = { "lita_plugin_type" => "handler" }
11
+
12
+ spec.files = `git ls-files`.split($/)
13
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ["lib"]
16
+
17
+ spec.add_runtime_dependency "lita", ">= 4.7"
18
+
19
+ spec.add_development_dependency "bundler", "~> 1.3"
20
+ spec.add_development_dependency "pry-byebug"
21
+ spec.add_development_dependency "rake"
22
+ spec.add_development_dependency "rack-test"
23
+ spec.add_development_dependency "rspec", ">= 3.0.0"
24
+ spec.add_development_dependency "tracker_api", "~> 0.2.0"
25
+ end
@@ -0,0 +1,4 @@
1
+ en:
2
+ lita:
3
+ handlers:
4
+ kanban:
@@ -0,0 +1,64 @@
1
+ require "spec_helper"
2
+
3
+ describe Lita::Handlers::Kanban, lita_handler: true do
4
+ let(:after_story_id) { 0 }
5
+ let(:before_story_id) { 3 }
6
+
7
+ it { is_expected.to route_command("kanban #{after_story_id} #{before_story_id}").to(:kanban) }
8
+
9
+ describe '#kanban' do
10
+ context 'when missing token' do
11
+ before do
12
+ allow(Lita.config.handlers.kanban).to receive(:pivotal_tracker_token).and_return(nil)
13
+ allow(Lita.config.handlers.kanban).to receive(:pivotal_tracker_project_id).and_return(1)
14
+ allow_any_instance_of(TrackerApi::Client).to receive(:project).and_return(nil)
15
+ end
16
+
17
+ it 'raise an error' do
18
+ expect { send_command("kanban #{after_story_id} #{before_story_id}") }.to raise_error('Missing Pivotal Tracker token')
19
+ end
20
+ end
21
+
22
+ context 'when missing project id' do
23
+ before do
24
+ allow(Lita.config.handlers.kanban).to receive(:pivotal_tracker_token).and_return('token')
25
+ allow(Lita.config.handlers.kanban).to receive(:pivotal_tracker_project_id).and_return(nil)
26
+ allow_any_instance_of(TrackerApi::Client).to receive(:project).and_return(nil)
27
+ end
28
+
29
+ it 'raise an error' do
30
+ expect { send_command("kanban #{after_story_id} #{before_story_id}") }.to raise_error('Missing Pivotal Tracker project id')
31
+ end
32
+ end
33
+
34
+ context 'when found stories' do
35
+ before do
36
+ allow_any_instance_of(Lita::Handlers::Kanban).to receive(:stories).and_return(
37
+ [
38
+ TrackerApi::Resources::Story.new(id: 1, name: "story1"),
39
+ TrackerApi::Resources::Story.new(id: 2, name: "story2")
40
+ ]
41
+ )
42
+ end
43
+
44
+ it 'return stories' do
45
+ send_command("kanban #{after_story_id} #{before_story_id}")
46
+ expect(replies.last).to eq "story1\nstory2"
47
+ end
48
+ end
49
+
50
+ context 'when not found stories' do
51
+ before do
52
+ allow_any_instance_of(Lita::Handlers::Kanban).to receive(:stories).and_return(
53
+ [
54
+ ]
55
+ )
56
+ end
57
+
58
+ it 'return stories' do
59
+ send_command("kanban #{after_story_id} #{before_story_id}")
60
+ expect(replies.last).to eq ""
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,6 @@
1
+ require "lita-kanban"
2
+ require "lita/rspec"
3
+
4
+ # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
5
+ # was generated with Lita 4, the compatibility mode should be left disabled.
6
+ Lita.version_3_compatibility_mode = false
File without changes
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-kanban
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Shoma SATO
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lita
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry-byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack-test
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
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: tracker_api
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.0
111
+ description: A lita handler for build a Kanban board from Pivotal Tracker.
112
+ email:
113
+ - noir.neo.04@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - Gemfile
120
+ - README.md
121
+ - Rakefile
122
+ - lib/lita-kanban.rb
123
+ - lib/lita/handlers/kanban.rb
124
+ - lita-kanban.gemspec
125
+ - locales/en.yml
126
+ - spec/lita/handlers/kanban_spec.rb
127
+ - spec/spec_helper.rb
128
+ - templates/.gitkeep
129
+ homepage: ''
130
+ licenses:
131
+ - MIT
132
+ metadata:
133
+ lita_plugin_type: handler
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ requirements: []
149
+ rubyforge_project:
150
+ rubygems_version: 2.4.5
151
+ signing_key:
152
+ specification_version: 4
153
+ summary: A lita handler for build a Kanban board from Pivotal Tracker.
154
+ test_files:
155
+ - spec/lita/handlers/kanban_spec.rb
156
+ - spec/spec_helper.rb