yandex_tracker 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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/CHANGELOG.md +3 -0
  5. data/Gemfile +17 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +122 -0
  8. data/Rakefile +12 -0
  9. data/lib/yandex_tracker/auth.rb +76 -0
  10. data/lib/yandex_tracker/client.rb +89 -0
  11. data/lib/yandex_tracker/collections/attachments.rb +43 -0
  12. data/lib/yandex_tracker/collections/base.rb +30 -0
  13. data/lib/yandex_tracker/collections/categories.rb +34 -0
  14. data/lib/yandex_tracker/collections/comments.rb +44 -0
  15. data/lib/yandex_tracker/collections/fields.rb +38 -0
  16. data/lib/yandex_tracker/collections/issues.rb +49 -0
  17. data/lib/yandex_tracker/collections/local_fields.rb +39 -0
  18. data/lib/yandex_tracker/collections/queues.rb +34 -0
  19. data/lib/yandex_tracker/collections/resolutions.rb +29 -0
  20. data/lib/yandex_tracker/collections/users.rb +34 -0
  21. data/lib/yandex_tracker/collections/workflows.rb +29 -0
  22. data/lib/yandex_tracker/configuration.rb +66 -0
  23. data/lib/yandex_tracker/errors.rb +30 -0
  24. data/lib/yandex_tracker/objects/attachment.rb +24 -0
  25. data/lib/yandex_tracker/objects/base.rb +81 -0
  26. data/lib/yandex_tracker/objects/category.rb +16 -0
  27. data/lib/yandex_tracker/objects/comment.rb +27 -0
  28. data/lib/yandex_tracker/objects/field.rb +16 -0
  29. data/lib/yandex_tracker/objects/issue.rb +37 -0
  30. data/lib/yandex_tracker/objects/local_field.rb +16 -0
  31. data/lib/yandex_tracker/objects/queue.rb +29 -0
  32. data/lib/yandex_tracker/objects/resolution.rb +16 -0
  33. data/lib/yandex_tracker/objects/user.rb +16 -0
  34. data/lib/yandex_tracker/objects/workflow.rb +16 -0
  35. data/lib/yandex_tracker/resources/attachment.rb +54 -0
  36. data/lib/yandex_tracker/resources/base.rb +72 -0
  37. data/lib/yandex_tracker/resources/category.rb +22 -0
  38. data/lib/yandex_tracker/resources/comment.rb +22 -0
  39. data/lib/yandex_tracker/resources/field.rb +22 -0
  40. data/lib/yandex_tracker/resources/issue.rb +42 -0
  41. data/lib/yandex_tracker/resources/local_field.rb +22 -0
  42. data/lib/yandex_tracker/resources/queue.rb +22 -0
  43. data/lib/yandex_tracker/resources/resolution.rb +18 -0
  44. data/lib/yandex_tracker/resources/user.rb +22 -0
  45. data/lib/yandex_tracker/resources/workflow.rb +18 -0
  46. data/lib/yandex_tracker/version.rb +5 -0
  47. data/lib/yandex_tracker.rb +63 -0
  48. data/sig/yandex_tracker.rbs +4 -0
  49. data/yandex_tracker.gemspec +40 -0
  50. metadata +150 -0
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::Issue
7
+ #
8
+ class Issue < Base
9
+ def create(**attributes)
10
+ post("issues", attributes)
11
+ end
12
+
13
+ def update(**attributes)
14
+ patch("issues", attributes)
15
+ end
16
+
17
+ def find(id, **params)
18
+ get("issues/#{id}", params)
19
+ end
20
+
21
+ def list(**params)
22
+ get("issues", params)
23
+ end
24
+
25
+ def transition(issue_id, transition_id, **attributes)
26
+ post("issues/#{issue_id}/transitions/#{transition_id}/_execute", attributes)
27
+ end
28
+
29
+ def transitions(issue_id)
30
+ get("issues/#{issue_id}/transitions")
31
+ end
32
+
33
+ def search(body = {}, **query_params)
34
+ post("issues/_search", body, query_params)
35
+ end
36
+
37
+ def import(body = {}, **query_params)
38
+ post("issues/_import", body, query_params)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::LocalField
7
+ #
8
+ class LocalField < Base
9
+ def list(queue_id, **params)
10
+ get("queues/#{queue_id}/localFields", params)
11
+ end
12
+
13
+ def create(queue_id, **attributes)
14
+ post("queues/#{queue_id}/localFields", attributes)
15
+ end
16
+
17
+ def find(queue_id, key)
18
+ get("queues/#{queue_id}/localFields/#{key}")
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::Queue
7
+ #
8
+ class Queue < Base
9
+ def create(**attributes)
10
+ post("queues", attributes)
11
+ end
12
+
13
+ def find(id, **params)
14
+ get("queues/#{id}", params)
15
+ end
16
+
17
+ def list(**params)
18
+ get("queues", params)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::Resolution
7
+ #
8
+ class Resolution < Base
9
+ def list(**params)
10
+ get("resolutions", params)
11
+ end
12
+
13
+ def find(id)
14
+ get("resolutions/#{id}")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::User
7
+ #
8
+ class User < Base
9
+ def myself
10
+ get("myself")
11
+ end
12
+
13
+ def list(**params)
14
+ get("users", params)
15
+ end
16
+
17
+ def find(id)
18
+ get("users/#{id}")
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ module Resources
5
+ #
6
+ # Resources::Workflow
7
+ #
8
+ class Workflow < Base
9
+ def list(**params)
10
+ get("workflows", params)
11
+ end
12
+
13
+ def find(id)
14
+ get("workflows/#{id}")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexTracker
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Dir[File.join(__dir__, "yandex_tracker/**/*.rb")].sort.each { |f| require f }
4
+
5
+ require_relative "yandex_tracker/version"
6
+ require_relative "yandex_tracker/errors"
7
+ require_relative "yandex_tracker/objects/base"
8
+ require_relative "yandex_tracker/collections/base"
9
+
10
+ require_relative "yandex_tracker/configuration"
11
+ require_relative "yandex_tracker/auth"
12
+ require_relative "yandex_tracker/client"
13
+ require_relative "yandex_tracker/resources/base"
14
+ require_relative "yandex_tracker/resources/user"
15
+ require_relative "yandex_tracker/resources/queue"
16
+ require_relative "yandex_tracker/resources/issue"
17
+ require_relative "yandex_tracker/resources/comment"
18
+ require_relative "yandex_tracker/resources/attachment"
19
+ require_relative "yandex_tracker/resources/workflow"
20
+ require_relative "yandex_tracker/resources/resolution"
21
+ require_relative "yandex_tracker/resources/field"
22
+ require_relative "yandex_tracker/resources/local_field"
23
+ require_relative "yandex_tracker/resources/category"
24
+
25
+ require_relative "yandex_tracker/collections/queues"
26
+ require_relative "yandex_tracker/collections/issues"
27
+ require_relative "yandex_tracker/collections/comments"
28
+ require_relative "yandex_tracker/collections/attachments"
29
+ require_relative "yandex_tracker/collections/users"
30
+ require_relative "yandex_tracker/collections/workflows"
31
+ require_relative "yandex_tracker/collections/resolutions"
32
+ require_relative "yandex_tracker/collections/fields"
33
+ require_relative "yandex_tracker/collections/local_fields"
34
+ require_relative "yandex_tracker/collections/categories"
35
+
36
+ require_relative "yandex_tracker/objects/queue"
37
+ require_relative "yandex_tracker/objects/issue"
38
+ require_relative "yandex_tracker/objects/comment"
39
+ require_relative "yandex_tracker/objects/attachment"
40
+ require_relative "yandex_tracker/objects/user"
41
+ require_relative "yandex_tracker/objects/workflow"
42
+ require_relative "yandex_tracker/objects/resolution"
43
+ require_relative "yandex_tracker/objects/field"
44
+ require_relative "yandex_tracker/objects/local_field"
45
+ require_relative "yandex_tracker/objects/category"
46
+
47
+ #
48
+ # Ruby wrapper for the YandexTracker REST API
49
+ #
50
+ module YandexTracker
51
+ class << self
52
+ attr_accessor :configuration
53
+ end
54
+
55
+ def self.configure
56
+ self.configuration ||= Configuration.new
57
+ yield(configuration)
58
+ end
59
+
60
+ def self.client
61
+ @client ||= Client.new
62
+ end
63
+ end
@@ -0,0 +1,4 @@
1
+ module YandexTracker
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/yandex_tracker/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "yandex_tracker"
7
+ spec.version = YandexTracker::VERSION
8
+ spec.authors = ["kirqe"]
9
+ spec.email = ["kirqe@yahoo.com"]
10
+
11
+ spec.summary = "Ruby API wrapper for Yandex Tracker"
12
+ spec.description = "A Ruby library for interacting with the Yandex Tracker API"
13
+ spec.homepage = "https://github.com/kirqe/yandex_tracker"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
20
+
21
+ spec.files = Dir.chdir(__dir__) do
22
+ `git ls-files -z`.split("\x0").reject do |f|
23
+ (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
24
+ end
25
+ end
26
+ # spec.files = Dir[
27
+ # "lib/**/*",
28
+ # "LICENSE.txt",
29
+ # "README.md",
30
+ # "CHANGELOG.md"
31
+ # ]
32
+ spec.bindir = "exe"
33
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
34
+ spec.require_paths = ["lib"]
35
+
36
+ spec.add_dependency "faraday", "~> 2.0"
37
+ spec.add_dependency "faraday-multipart", "~> 1.0"
38
+ spec.add_dependency "faraday-retry", "~> 2.2"
39
+ spec.add_dependency "mime-types", "~> 3.1"
40
+ end
metadata ADDED
@@ -0,0 +1,150 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yandex_tracker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - kirqe
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-01-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday-multipart
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday-retry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mime-types
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.1'
69
+ description: A Ruby library for interacting with the Yandex Tracker API
70
+ email:
71
+ - kirqe@yahoo.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".rspec"
77
+ - ".rubocop.yml"
78
+ - CHANGELOG.md
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - lib/yandex_tracker.rb
84
+ - lib/yandex_tracker/auth.rb
85
+ - lib/yandex_tracker/client.rb
86
+ - lib/yandex_tracker/collections/attachments.rb
87
+ - lib/yandex_tracker/collections/base.rb
88
+ - lib/yandex_tracker/collections/categories.rb
89
+ - lib/yandex_tracker/collections/comments.rb
90
+ - lib/yandex_tracker/collections/fields.rb
91
+ - lib/yandex_tracker/collections/issues.rb
92
+ - lib/yandex_tracker/collections/local_fields.rb
93
+ - lib/yandex_tracker/collections/queues.rb
94
+ - lib/yandex_tracker/collections/resolutions.rb
95
+ - lib/yandex_tracker/collections/users.rb
96
+ - lib/yandex_tracker/collections/workflows.rb
97
+ - lib/yandex_tracker/configuration.rb
98
+ - lib/yandex_tracker/errors.rb
99
+ - lib/yandex_tracker/objects/attachment.rb
100
+ - lib/yandex_tracker/objects/base.rb
101
+ - lib/yandex_tracker/objects/category.rb
102
+ - lib/yandex_tracker/objects/comment.rb
103
+ - lib/yandex_tracker/objects/field.rb
104
+ - lib/yandex_tracker/objects/issue.rb
105
+ - lib/yandex_tracker/objects/local_field.rb
106
+ - lib/yandex_tracker/objects/queue.rb
107
+ - lib/yandex_tracker/objects/resolution.rb
108
+ - lib/yandex_tracker/objects/user.rb
109
+ - lib/yandex_tracker/objects/workflow.rb
110
+ - lib/yandex_tracker/resources/attachment.rb
111
+ - lib/yandex_tracker/resources/base.rb
112
+ - lib/yandex_tracker/resources/category.rb
113
+ - lib/yandex_tracker/resources/comment.rb
114
+ - lib/yandex_tracker/resources/field.rb
115
+ - lib/yandex_tracker/resources/issue.rb
116
+ - lib/yandex_tracker/resources/local_field.rb
117
+ - lib/yandex_tracker/resources/queue.rb
118
+ - lib/yandex_tracker/resources/resolution.rb
119
+ - lib/yandex_tracker/resources/user.rb
120
+ - lib/yandex_tracker/resources/workflow.rb
121
+ - lib/yandex_tracker/version.rb
122
+ - sig/yandex_tracker.rbs
123
+ - yandex_tracker.gemspec
124
+ homepage: https://github.com/kirqe/yandex_tracker
125
+ licenses:
126
+ - MIT
127
+ metadata:
128
+ homepage_uri: https://github.com/kirqe/yandex_tracker
129
+ source_code_uri: https://github.com/kirqe/yandex_tracker
130
+ changelog_uri: https://github.com/kirqe/yandex_tracker/blob/main/CHANGELOG.md
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 2.6.0
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubygems_version: 3.4.10
147
+ signing_key:
148
+ specification_version: 4
149
+ summary: Ruby API wrapper for Yandex Tracker
150
+ test_files: []