embulk-input-jira 0.0.7 → 0.1.0
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/CHANGELOG.md +4 -0
- data/README.md +3 -0
- data/embulk-input-jira.gemspec +2 -1
- data/lib/embulk/input/jira.rb +14 -5
- data/spec/embulk/input/jira_spec.rb +5 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cadf45e98287f889deb94f4bfbd0e7d59f5d4d20
|
4
|
+
data.tar.gz: 6d984f2036a083042d1d281fcb7dd83160cc20bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f80d9490c44aa09d7a1edef199cce5e9bdf28d9e42caea371a593b68c52b69bad570c3c87f6c8269b53dfca980a8d19d6c9f65d7ab7088c022002a90ee16fb6
|
7
|
+
data.tar.gz: 15a60a4562600873deffa9415df7bc5c8c8ab2ab3e78907e01208d521a09c3596d7a92b87190371f823c97e39ff9141ba42337e0bd302ef5cffe3303304c22d5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.1.0 - 2015-11-09
|
2
|
+
|
3
|
+
* [enhancement] Add retry options and retry handling [#41](https://github.com/treasure-data/embulk-input-jira/pull/41)
|
4
|
+
|
1
5
|
## 0.0.7 - 2015-10-06
|
2
6
|
|
3
7
|
* [enhancement] Supports embulk.0.7 [#40](https://github.com/treasure-data/embulk-input-jira/pull/40)
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
[](https://travis-ci.org/treasure-data/embulk-input-jira)
|
2
2
|
[](https://codeclimate.com/github/treasure-data/embulk-input-jira)
|
3
3
|
[](https://codeclimate.com/github/treasure-data/embulk-input-jira/coverage)
|
4
|
+
[](https://badge.fury.io/rb/embulk-input-jira)
|
4
5
|
|
5
6
|
# Jira input plugin for Embulk
|
6
7
|
|
@@ -22,6 +23,8 @@ Required Embulk version >= 0.6.12
|
|
22
23
|
- **uri** JIRA API endpoint (string, required)
|
23
24
|
- **jql** [JQL](https://confluence.atlassian.com/display/JIRA/Advanced+Searching) for extract target issues (string, required)
|
24
25
|
- **columns** target issue attributes. You can generate this configuration by `guess` command (array, required)
|
26
|
+
- **retry_initial_wait_sec**: Wait seconds for exponential backoff initial value (integer, default: 1)
|
27
|
+
- **retry_limit**: Try to retry this times (integer, default: 5)
|
25
28
|
|
26
29
|
## Example
|
27
30
|
|
data/embulk-input-jira.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "embulk-input-jira"
|
3
|
-
spec.version = "0.0
|
3
|
+
spec.version = "0.1.0"
|
4
4
|
spec.authors = ["uu59", "yoshihara"]
|
5
5
|
spec.summary = "Jira input plugin for Embulk"
|
6
6
|
spec.description = "Loads records from Jira."
|
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
|
15
15
|
spec.add_dependency 'jiralicious', ['~> 0.5.0']
|
16
16
|
spec.add_dependency 'parallel', ['~> 1.6.0']
|
17
|
+
spec.add_dependency 'perfect_retry', ['~> 0.2']
|
17
18
|
spec.add_development_dependency 'bundler', ['~> 1.0']
|
18
19
|
spec.add_development_dependency 'rake', ['>= 10.0']
|
19
20
|
spec.add_development_dependency 'rspec', "~> 3.2.0"
|
data/lib/embulk/input/jira.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "perfect_retry"
|
1
2
|
require "embulk/input/jira_input_plugin_utils"
|
2
3
|
require "embulk/input/jira_api"
|
3
4
|
|
@@ -27,6 +28,8 @@ module Embulk
|
|
27
28
|
end
|
28
29
|
|
29
30
|
task[:attributes] = attributes
|
31
|
+
task[:retry_limit] = config.param(:retry_limit, :integer, default: 5)
|
32
|
+
task[:retry_initial_wait_sec] = config.param(:retry_initial_wait_sec, :integer, default: 1)
|
30
33
|
|
31
34
|
resume(task, columns, 1, &control)
|
32
35
|
end
|
@@ -79,6 +82,11 @@ module Embulk
|
|
79
82
|
config.auth_type = "basic"
|
80
83
|
end
|
81
84
|
@jql = task[:jql]
|
85
|
+
@retryer = PerfectRetry.new do |config|
|
86
|
+
config.limit = task[:retry_limit]
|
87
|
+
config.sleep = proc{|n| task[:retry_initial_wait_sec] ** n}
|
88
|
+
config.dont_rescues = [Embulk::ConfigError]
|
89
|
+
end
|
82
90
|
end
|
83
91
|
|
84
92
|
def run
|
@@ -89,12 +97,13 @@ module Embulk
|
|
89
97
|
|
90
98
|
0.step(total_count, PER_PAGE).with_index(1) do |start_at, page|
|
91
99
|
logger.debug "Fetching #{page} / #{last_page} page"
|
92
|
-
@
|
93
|
-
|
94
|
-
|
100
|
+
@retryer.with_retry do
|
101
|
+
@jira.search_issues(@jql, options.merge(start_at: start_at)).each do |issue|
|
102
|
+
values = @attributes.map do |(attribute_name, type)|
|
103
|
+
JiraInputPluginUtils.cast(issue[attribute_name], type)
|
104
|
+
end
|
105
|
+
page_builder.add(values)
|
95
106
|
end
|
96
|
-
|
97
|
-
page_builder.add(values)
|
98
107
|
end
|
99
108
|
end
|
100
109
|
|
@@ -22,7 +22,9 @@ describe Embulk::Input::Jira do
|
|
22
22
|
attributes: {
|
23
23
|
"project.key" => :string,
|
24
24
|
"comment.total" => :long
|
25
|
-
}
|
25
|
+
},
|
26
|
+
retry_limit: 5,
|
27
|
+
retry_initial_wait_sec: 1,
|
26
28
|
}
|
27
29
|
end
|
28
30
|
|
@@ -46,6 +48,8 @@ describe Embulk::Input::Jira do
|
|
46
48
|
allow(config).to receive(:param).with(:uri, :string).and_return(uri)
|
47
49
|
allow(config).to receive(:param).with(:jql, :string).and_return(jql)
|
48
50
|
allow(config).to receive(:param).with(:columns, :array).and_return(columns)
|
51
|
+
allow(config).to receive(:param).with(:retry_limit, :integer, default: 5).and_return(5)
|
52
|
+
allow(config).to receive(:param).with(:retry_initial_wait_sec, :integer, default: 1).and_return(1)
|
49
53
|
end
|
50
54
|
|
51
55
|
# NOTE: I should check other factor, but i don't know it...
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-jira
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uu59
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-11-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,6 +39,20 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.6.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.2'
|
48
|
+
name: perfect_retry
|
49
|
+
prerelease: false
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.2'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|