tb-bjb 1.6.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.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +86 -0
  3. data/Gemfile +32 -0
  4. data/LICENSE +21 -0
  5. data/README.md +387 -0
  6. data/Rakefile +47 -0
  7. data/lib/faraday_middleware/follow_oauth_redirects.rb +71 -0
  8. data/lib/tinybucket.rb +76 -0
  9. data/lib/tinybucket/api.rb +25 -0
  10. data/lib/tinybucket/api/base_api.rb +44 -0
  11. data/lib/tinybucket/api/branch_restrictions_api.rb +51 -0
  12. data/lib/tinybucket/api/branches_api.rb +48 -0
  13. data/lib/tinybucket/api/build_status_api.rb +69 -0
  14. data/lib/tinybucket/api/comments_api.rb +81 -0
  15. data/lib/tinybucket/api/commits_api.rb +97 -0
  16. data/lib/tinybucket/api/diff_api.rb +40 -0
  17. data/lib/tinybucket/api/helper.rb +27 -0
  18. data/lib/tinybucket/api/helper/api_helper.rb +39 -0
  19. data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +29 -0
  20. data/lib/tinybucket/api/helper/branches_helper.rb +29 -0
  21. data/lib/tinybucket/api/helper/build_status_helper.rb +46 -0
  22. data/lib/tinybucket/api/helper/comments_helper.rb +51 -0
  23. data/lib/tinybucket/api/helper/commits_helper.rb +42 -0
  24. data/lib/tinybucket/api/helper/diff_helper.rb +31 -0
  25. data/lib/tinybucket/api/helper/projects_helper.rb +28 -0
  26. data/lib/tinybucket/api/helper/pull_requests_helper.rb +67 -0
  27. data/lib/tinybucket/api/helper/repo_helper.rb +31 -0
  28. data/lib/tinybucket/api/helper/repos_helper.rb +23 -0
  29. data/lib/tinybucket/api/helper/team_helper.rb +45 -0
  30. data/lib/tinybucket/api/helper/user_helper.rb +33 -0
  31. data/lib/tinybucket/api/projects_api.rb +26 -0
  32. data/lib/tinybucket/api/pull_requests_api.rb +139 -0
  33. data/lib/tinybucket/api/repo_api.rb +56 -0
  34. data/lib/tinybucket/api/repos_api.rb +28 -0
  35. data/lib/tinybucket/api/team_api.rb +91 -0
  36. data/lib/tinybucket/api/user_api.rb +66 -0
  37. data/lib/tinybucket/api_factory.rb +21 -0
  38. data/lib/tinybucket/client.rb +107 -0
  39. data/lib/tinybucket/config.rb +10 -0
  40. data/lib/tinybucket/connection.rb +84 -0
  41. data/lib/tinybucket/constants.rb +7 -0
  42. data/lib/tinybucket/enumerator.rb +47 -0
  43. data/lib/tinybucket/error.rb +12 -0
  44. data/lib/tinybucket/error/base_error.rb +14 -0
  45. data/lib/tinybucket/error/conflict.rb +8 -0
  46. data/lib/tinybucket/error/not_found.rb +8 -0
  47. data/lib/tinybucket/error/service_error.rb +26 -0
  48. data/lib/tinybucket/iterator.rb +79 -0
  49. data/lib/tinybucket/model.rb +25 -0
  50. data/lib/tinybucket/model/base.rb +45 -0
  51. data/lib/tinybucket/model/branch.rb +48 -0
  52. data/lib/tinybucket/model/branch_restriction.rb +46 -0
  53. data/lib/tinybucket/model/build_status.rb +57 -0
  54. data/lib/tinybucket/model/comment.rb +67 -0
  55. data/lib/tinybucket/model/commit.rb +114 -0
  56. data/lib/tinybucket/model/concerns.rb +19 -0
  57. data/lib/tinybucket/model/concerns/acceptable_attributes.rb +34 -0
  58. data/lib/tinybucket/model/concerns/api_callable.rb +21 -0
  59. data/lib/tinybucket/model/concerns/enumerable.rb +20 -0
  60. data/lib/tinybucket/model/concerns/reloadable.rb +41 -0
  61. data/lib/tinybucket/model/concerns/repository_keys.rb +45 -0
  62. data/lib/tinybucket/model/error_response.rb +24 -0
  63. data/lib/tinybucket/model/page.rb +45 -0
  64. data/lib/tinybucket/model/profile.rb +70 -0
  65. data/lib/tinybucket/model/project.rb +44 -0
  66. data/lib/tinybucket/model/pull_request.rb +162 -0
  67. data/lib/tinybucket/model/repository.rb +219 -0
  68. data/lib/tinybucket/model/team.rb +96 -0
  69. data/lib/tinybucket/null_logger.rb +37 -0
  70. data/lib/tinybucket/parser.rb +15 -0
  71. data/lib/tinybucket/parser/collection_parser.rb +17 -0
  72. data/lib/tinybucket/parser/object_parser.rb +17 -0
  73. data/lib/tinybucket/request.rb +61 -0
  74. data/lib/tinybucket/resource.rb +75 -0
  75. data/lib/tinybucket/resource/base.rb +35 -0
  76. data/lib/tinybucket/resource/branch_restrictions.rb +47 -0
  77. data/lib/tinybucket/resource/branches.rb +35 -0
  78. data/lib/tinybucket/resource/commit/base.rb +14 -0
  79. data/lib/tinybucket/resource/commit/build_statuses.rb +50 -0
  80. data/lib/tinybucket/resource/commit/comments.rb +34 -0
  81. data/lib/tinybucket/resource/commits.rb +46 -0
  82. data/lib/tinybucket/resource/forks.rb +24 -0
  83. data/lib/tinybucket/resource/projects.rb +49 -0
  84. data/lib/tinybucket/resource/pull_request/base.rb +20 -0
  85. data/lib/tinybucket/resource/pull_request/comments.rb +32 -0
  86. data/lib/tinybucket/resource/pull_request/commits.rb +19 -0
  87. data/lib/tinybucket/resource/pull_requests.rb +52 -0
  88. data/lib/tinybucket/resource/repos.rb +40 -0
  89. data/lib/tinybucket/resource/team/base.rb +24 -0
  90. data/lib/tinybucket/resource/team/followers.rb +15 -0
  91. data/lib/tinybucket/resource/team/following.rb +15 -0
  92. data/lib/tinybucket/resource/team/members.rb +15 -0
  93. data/lib/tinybucket/resource/team/repos.rb +15 -0
  94. data/lib/tinybucket/resource/teams.rb +22 -0
  95. data/lib/tinybucket/resource/user/base.rb +26 -0
  96. data/lib/tinybucket/resource/user/followers.rb +15 -0
  97. data/lib/tinybucket/resource/user/following.rb +15 -0
  98. data/lib/tinybucket/resource/user/repos.rb +15 -0
  99. data/lib/tinybucket/resource/watchers.rb +24 -0
  100. data/lib/tinybucket/response.rb +9 -0
  101. data/lib/tinybucket/response/handler.rb +23 -0
  102. data/lib/tinybucket/version.rb +5 -0
  103. data/tinybucket.gemspec +30 -0
  104. metadata +244 -0
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class Commits < Base
6
+ def initialize(repo, options)
7
+ @repo = repo
8
+ @args = [options]
9
+ end
10
+
11
+ # Find the commit
12
+ #
13
+ # @param revision [String]
14
+ # @param options [Hash]
15
+ # @return [Tinybucket::Model::Commit]
16
+ def find(revision, options = {})
17
+ commits_api.find(revision, options).tap do |m|
18
+ inject_repo_keys(m, @repo.repo_keys)
19
+ end
20
+ end
21
+
22
+ # Returns the commits for a specific branch
23
+ #
24
+ # @param name [String]
25
+ # @param options [Hash]
26
+ # @return [Tinybucket::Iterator]
27
+ def branch(name, options = {})
28
+ create_enumerator(commits_api, :branch, name, options) do |m|
29
+ inject_repo_keys(m, @repo.repo_keys)
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def commits_api
36
+ create_api('Commits', @repo.repo_keys)
37
+ end
38
+
39
+ def enumerator
40
+ create_enumerator(commits_api, :list, *@args) do |m|
41
+ inject_repo_keys(m, @repo.repo_keys)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class Forks < Base
6
+ def initialize(repo, options)
7
+ @repo = repo
8
+ @args = [options]
9
+ end
10
+
11
+ private
12
+
13
+ def repo_api
14
+ create_api('Repo', @repo.repo_keys)
15
+ end
16
+
17
+ def enumerator
18
+ create_enumerator(repo_api, :forks, *@args) do |m|
19
+ inject_repo_keys(m, @repo.repo_keys)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class Projects < Base
6
+ attr_accessor :owner
7
+
8
+ # Initialize
9
+ #
10
+ # @param owner_name [String]
11
+ # @param options [Hash]
12
+ def initialize(owner_name, options = {})
13
+ @owner = owner_name
14
+ @args = [options]
15
+ end
16
+
17
+ # Find the project
18
+ #
19
+ # @param project_key [String]
20
+ # @param options [Hash]
21
+ # @return [Tinybucket::Model::Project]
22
+ def find(project_key, options = {})
23
+ projects_api.find(project_key, options)
24
+ end
25
+
26
+ # Create a new project
27
+ #
28
+ # NOTE: Not Implemented yet.
29
+ #
30
+ # @param _params [Hash]
31
+ # @raise [NotImplementedError] to be implemented
32
+ def create(_params)
33
+ raise NotImplementedError
34
+ end
35
+
36
+ private
37
+
38
+ def projects_api
39
+ create_api('Projects').tap do |api|
40
+ api.owner = @owner
41
+ end
42
+ end
43
+
44
+ def enumerator
45
+ create_enumerator(projects_api, :list, *@args)
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module PullRequest
6
+ class Base < Tinybucket::Resource::Base
7
+ def initialize(pull_request, options)
8
+ @pull_request = pull_request
9
+ @args = [options]
10
+ end
11
+
12
+ protected
13
+
14
+ def pull_request_api
15
+ create_api('PullRequests', @pull_request.repo_keys)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module PullRequest
6
+ class Comments < Tinybucket::Resource::PullRequest::Base
7
+ # Get the specific comment on the pull request.
8
+ #
9
+ # @param comment_id [String]
10
+ # @param options [Hash]
11
+ # @return [Tinybucket::Model::Comment]
12
+ def find(comment_id, options)
13
+ comment_api.find(comment_id, options)
14
+ end
15
+
16
+ private
17
+
18
+ def comment_api
19
+ create_api('Comments', @pull_request.repo_keys).tap do |api|
20
+ api.commented_to = @pull_request
21
+ end
22
+ end
23
+
24
+ def enumerator
25
+ create_enumerator(comment_api, :list, *@args) do |m|
26
+ inject_repo_keys(m, @pull_request.repo_keys)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module PullRequest
6
+ class Commits < Tinybucket::Resource::PullRequest::Base
7
+ private
8
+
9
+ def enumerator
10
+ params = [@pull_request.id].concat(@args)
11
+
12
+ create_enumerator(pull_request_api, :commits, *params) do |m|
13
+ inject_repo_keys(m, @pull_request.repo_keys)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class PullRequests < Base
6
+ def initialize(repo, options)
7
+ @repo = repo
8
+ @args = [options]
9
+ end
10
+
11
+ # Create a new pull request.
12
+ #
13
+ # @param options [Hash]
14
+ # @return [Tinybucket::Model::PullRequest]
15
+ def create(options)
16
+ pull_requests_api.create(options).tap do |m|
17
+ inject_repo_keys(m, @repo.repo_keys)
18
+ end
19
+ end
20
+
21
+ # Get the specific pull request on the repository.
22
+ #
23
+ # @param pullrequest_id [String]
24
+ # @param options [Hash]
25
+ # @return [Tinybucket::Model::PullRequest]
26
+ def find(pullrequest_id, options = {})
27
+ pull_requests_api.find(pullrequest_id, options).tap do |m|
28
+ inject_repo_keys(m, @repo.repo_keys)
29
+ end
30
+ end
31
+
32
+ # Get activities on the po
33
+ #
34
+ # TODO: To be implemented.
35
+ def activities(_options)
36
+ raise NotImplementedError
37
+ end
38
+
39
+ private
40
+
41
+ def pull_requests_api
42
+ create_api('PullRequests', @repo.repo_keys)
43
+ end
44
+
45
+ def enumerator
46
+ create_enumerator(pull_requests_api, :list, *@args) do |m|
47
+ inject_repo_keys(m, @repo.repo_keys)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class Repos < Base
6
+ def initialize(owner, options)
7
+ @owner = owner
8
+ @args = [options]
9
+ end
10
+
11
+ def create(_options)
12
+ raise NotImplementedError
13
+ end
14
+
15
+ def find(_options)
16
+ raise NotImplementedError
17
+ end
18
+
19
+ private
20
+
21
+ def user_api
22
+ create_api('User').tap do |api|
23
+ api.username = @owner
24
+ end
25
+ end
26
+
27
+ def repos_api
28
+ create_api('Repos')
29
+ end
30
+
31
+ def enumerator
32
+ if @owner
33
+ create_enumerator(user_api, :repos, *@args)
34
+ else
35
+ create_enumerator(repos_api, :list, *@args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module Team
6
+ class Base < Tinybucket::Resource::Base
7
+ def initialize(team_name, options)
8
+ @team_name = team_name
9
+ @args = [options]
10
+ end
11
+
12
+ protected
13
+
14
+ def team_api
15
+ create_api('Team')
16
+ end
17
+
18
+ def create_team_enumerator(method)
19
+ create_enumerator(team_api, method, @team_name, *@args)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module Team
6
+ class Followers < Tinybucket::Resource::Team::Base
7
+ private
8
+
9
+ def enumerator
10
+ create_team_enumerator(:followers)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module Team
6
+ class Following < Tinybucket::Resource::Team::Base
7
+ private
8
+
9
+ def enumerator
10
+ create_team_enumerator(:following)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module Team
6
+ class Members < Tinybucket::Resource::Team::Base
7
+ private
8
+
9
+ def enumerator
10
+ create_team_enumerator(:members)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module Team
6
+ class Repos < Tinybucket::Resource::Team::Base
7
+ private
8
+
9
+ def enumerator
10
+ create_team_enumerator(:repos)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ class Teams < Base
6
+ def initialize(role_name, options = {})
7
+ @role_name = role_name
8
+ @args = [options]
9
+ end
10
+
11
+ private
12
+
13
+ def teams_api
14
+ create_api('Team')
15
+ end
16
+
17
+ def enumerator
18
+ create_enumerator(teams_api, :list, @role_name, *@args)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module User
6
+ class Base < Tinybucket::Resource::Base
7
+ def initialize(user_name, options)
8
+ @user_name = user_name
9
+ @args = [options]
10
+ end
11
+
12
+ protected
13
+
14
+ def user_api
15
+ create_api('User').tap do |api|
16
+ api.username = @user_name
17
+ end
18
+ end
19
+
20
+ def create_user_enumerator(method)
21
+ create_enumerator(user_api, method, *@args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tinybucket
4
+ module Resource
5
+ module User
6
+ class Followers < Tinybucket::Resource::User::Base
7
+ private
8
+
9
+ def enumerator
10
+ create_user_enumerator(:followers)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end