github_api 0.9.0 → 0.9.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 (163) hide show
  1. data/README.md +50 -5
  2. data/features/cassettes/git_data/commits/get.yml +69 -0
  3. data/features/git_data/commmits.feature +14 -0
  4. data/lib/github_api.rb +1 -0
  5. data/lib/github_api/activity/events.rb +42 -33
  6. data/lib/github_api/activity/notifications.rb +22 -22
  7. data/lib/github_api/activity/starring.rb +16 -21
  8. data/lib/github_api/activity/watching.rb +16 -19
  9. data/lib/github_api/api.rb +51 -8
  10. data/lib/github_api/arguments.rb +155 -0
  11. data/lib/github_api/authorizations.rb +19 -20
  12. data/lib/github_api/configuration.rb +5 -0
  13. data/lib/github_api/emojis.rb +3 -3
  14. data/lib/github_api/error/validations.rb +2 -2
  15. data/lib/github_api/gists.rb +32 -42
  16. data/lib/github_api/gists/comments.rb +21 -23
  17. data/lib/github_api/git_data/blobs.rb +13 -16
  18. data/lib/github_api/git_data/commits.rb +12 -10
  19. data/lib/github_api/git_data/references.rb +24 -28
  20. data/lib/github_api/git_data/tags.rb +9 -11
  21. data/lib/github_api/git_data/trees.rb +10 -13
  22. data/lib/github_api/gitignore.rb +4 -6
  23. data/lib/github_api/issues.rb +24 -32
  24. data/lib/github_api/issues/assignees.rb +11 -8
  25. data/lib/github_api/issues/comments.rb +21 -26
  26. data/lib/github_api/issues/events.rb +7 -9
  27. data/lib/github_api/issues/labels.rb +39 -53
  28. data/lib/github_api/issues/milestones.rb +26 -33
  29. data/lib/github_api/markdown.rb +5 -6
  30. data/lib/github_api/meta.rb +3 -3
  31. data/lib/github_api/orgs.rb +10 -11
  32. data/lib/github_api/orgs/members.rb +18 -20
  33. data/lib/github_api/orgs/teams.rb +54 -58
  34. data/lib/github_api/pull_requests.rb +40 -54
  35. data/lib/github_api/pull_requests/comments.rb +19 -26
  36. data/lib/github_api/repos.rb +146 -101
  37. data/lib/github_api/repos/collaborators.rb +29 -30
  38. data/lib/github_api/repos/comments.rb +20 -25
  39. data/lib/github_api/repos/commits.rb +12 -14
  40. data/lib/github_api/repos/contents.rb +22 -14
  41. data/lib/github_api/repos/downloads.rb +19 -23
  42. data/lib/github_api/repos/forks.rb +6 -11
  43. data/lib/github_api/repos/hooks.rb +25 -34
  44. data/lib/github_api/repos/keys.rb +25 -27
  45. data/lib/github_api/repos/merging.rb +7 -6
  46. data/lib/github_api/repos/pub_sub_hubbub.rb +14 -18
  47. data/lib/github_api/repos/statuses.rb +13 -14
  48. data/lib/github_api/say.rb +1 -3
  49. data/lib/github_api/search.rb +12 -21
  50. data/lib/github_api/users.rb +10 -9
  51. data/lib/github_api/users/emails.rb +11 -9
  52. data/lib/github_api/users/followers.rb +25 -23
  53. data/lib/github_api/users/keys.rb +27 -29
  54. data/lib/github_api/version.rb +1 -1
  55. data/spec/github/activity/events/org_spec.rb +6 -6
  56. data/spec/github/activity/events/performed_spec.rb +1 -1
  57. data/spec/github/activity/events/received_spec.rb +1 -1
  58. data/spec/github/activity/events/user_org_spec.rb +4 -2
  59. data/spec/github/activity/notifications/create_spec.rb +1 -1
  60. data/spec/github/activity/notifications/delete_spec.rb +1 -1
  61. data/spec/github/activity/notifications/get_spec.rb +1 -1
  62. data/spec/github/activity/notifications/subscribed_spec.rb +1 -1
  63. data/spec/github/activity/starring/list_spec.rb +2 -0
  64. data/spec/github/activity/starring/starring_spec.rb +1 -1
  65. data/spec/github/activity/watching/list_spec.rb +2 -0
  66. data/spec/github/activity/watching/watching_spec.rb +1 -3
  67. data/spec/github/api/set_spec.rb +18 -4
  68. data/spec/github/api/with_spec.rb +28 -0
  69. data/spec/github/api_spec.rb +11 -33
  70. data/spec/github/arguments/parse_spec.rb +68 -0
  71. data/spec/github/authorizations/delete_spec.rb +1 -1
  72. data/spec/github/authorizations/get_spec.rb +1 -1
  73. data/spec/github/error/validations_spec.rb +3 -3
  74. data/spec/github/gists/comments/list_spec.rb +1 -1
  75. data/spec/github/gists/delete_spec.rb +1 -1
  76. data/spec/github/gists/fork_spec.rb +1 -1
  77. data/spec/github/gists/get_spec.rb +1 -1
  78. data/spec/github/gists/is_starred_spec.rb +2 -0
  79. data/spec/github/gists/star_spec.rb +1 -1
  80. data/spec/github/gists/unstar_spec.rb +1 -1
  81. data/spec/github/git_data/blobs/create_spec.rb +2 -0
  82. data/spec/github/git_data/blobs/get_spec.rb +1 -1
  83. data/spec/github/git_data/commits/create_spec.rb +2 -0
  84. data/spec/github/git_data/commits/get_spec.rb +3 -3
  85. data/spec/github/git_data/references/create_spec.rb +1 -1
  86. data/spec/github/git_data/references/delete_spec.rb +3 -1
  87. data/spec/github/git_data/tags/create_spec.rb +2 -0
  88. data/spec/github/gitignore/get_spec.rb +1 -1
  89. data/spec/github/issues/events/get_spec.rb +3 -1
  90. data/spec/github/issues/events/list_spec.rb +3 -1
  91. data/spec/github/issues/labels/add_spec.rb +6 -6
  92. data/spec/github/issues/labels/list_spec.rb +3 -1
  93. data/spec/github/issues/labels/replace_spec.rb +6 -7
  94. data/spec/github/issues/milestones/get_spec.rb +2 -0
  95. data/spec/github/normalizer_spec.rb +18 -6
  96. data/spec/github/orgs/members/conceal_spec.rb +6 -4
  97. data/spec/github/orgs/members/delete_spec.rb +2 -0
  98. data/spec/github/orgs/members/list_spec.rb +1 -1
  99. data/spec/github/orgs/members/member_spec.rb +3 -1
  100. data/spec/github/orgs/members/publicize_spec.rb +2 -0
  101. data/spec/github/orgs/teams/add_member_spec.rb +2 -0
  102. data/spec/github/orgs/teams/create_spec.rb +1 -1
  103. data/spec/github/orgs/teams/delete_spec.rb +1 -1
  104. data/spec/github/orgs/teams/edit_spec.rb +1 -1
  105. data/spec/github/orgs/teams/get_spec.rb +1 -1
  106. data/spec/github/orgs/teams/list_spec.rb +1 -1
  107. data/spec/github/orgs/teams/team_member_spec.rb +3 -1
  108. data/spec/github/parameter_filter_spec.rb +19 -58
  109. data/spec/github/pull_requests/comments/create_spec.rb +3 -1
  110. data/spec/github/pull_requests/comments/delete_spec.rb +1 -1
  111. data/spec/github/pull_requests/comments/edit_spec.rb +2 -0
  112. data/spec/github/pull_requests/comments/get_spec.rb +3 -1
  113. data/spec/github/pull_requests/comments/list_spec.rb +3 -1
  114. data/spec/github/pull_requests/commits_spec.rb +3 -3
  115. data/spec/github/pull_requests/create_spec.rb +4 -0
  116. data/spec/github/pull_requests/files_spec.rb +4 -0
  117. data/spec/github/pull_requests/get_spec.rb +3 -3
  118. data/spec/github/pull_requests/list_spec.rb +3 -3
  119. data/spec/github/pull_requests/merge_spec.rb +2 -0
  120. data/spec/github/pull_requests/merged_spec.rb +3 -1
  121. data/spec/github/pull_requests/update_spec.rb +4 -0
  122. data/spec/github/repos/collaborators/add_spec.rb +3 -1
  123. data/spec/github/repos/collaborators/get_spec.rb +1 -3
  124. data/spec/github/repos/collaborators/list_spec.rb +5 -1
  125. data/spec/github/repos/collaborators/remove_spec.rb +3 -1
  126. data/spec/github/repos/comments/create_spec.rb +4 -0
  127. data/spec/github/repos/comments/delete_spec.rb +2 -2
  128. data/spec/github/repos/comments/get_spec.rb +6 -2
  129. data/spec/github/repos/commits/compare_spec.rb +3 -3
  130. data/spec/github/repos/commits/get_spec.rb +3 -3
  131. data/spec/github/repos/commits/list_spec.rb +3 -3
  132. data/spec/github/repos/contents/archive_spec.rb +12 -0
  133. data/spec/github/repos/contents/get_spec.rb +5 -0
  134. data/spec/github/repos/contributors_spec.rb +7 -2
  135. data/spec/github/repos/downloads/create_spec.rb +4 -0
  136. data/spec/github/repos/downloads/delete_spec.rb +5 -1
  137. data/spec/github/repos/downloads/get_spec.rb +3 -1
  138. data/spec/github/repos/downloads/list_spec.rb +3 -1
  139. data/spec/github/repos/forks/create_spec.rb +2 -0
  140. data/spec/github/repos/forks/list_spec.rb +3 -1
  141. data/spec/github/repos/hooks/edit_spec.rb +1 -1
  142. data/spec/github/repos/keys/delete_spec.rb +1 -1
  143. data/spec/github/repos/keys/edit_spec.rb +2 -0
  144. data/spec/github/repos/keys/get_spec.rb +3 -1
  145. data/spec/github/repos/keys/list_spec.rb +4 -2
  146. data/spec/github/repos/list_spec.rb +6 -1
  147. data/spec/github/repos/pub_sub_hubbub/subscribe_service_spec.rb +27 -0
  148. data/spec/github/repos/pub_sub_hubbub/subscribe_spec.rb +51 -0
  149. data/spec/github/repos/pub_sub_hubbub/unsubscribe_service_spec.rb +21 -0
  150. data/spec/github/repos/pub_sub_hubbub/unsubscribe_spec.rb +58 -0
  151. data/spec/github/repos/statuses/create_spec.rb +2 -0
  152. data/spec/github/search_spec.rb +25 -10
  153. data/spec/github/users/followers/follow_spec.rb +1 -1
  154. data/spec/github/users/followers/is_following_spec.rb +1 -1
  155. data/spec/github/users/followers/unfollow_spec.rb +1 -1
  156. data/spec/github/users/keys/delete_spec.rb +1 -1
  157. data/spec/github/users/keys/get_spec.rb +1 -1
  158. data/spec/github/users/keys/update_spec.rb +1 -1
  159. data/spec/github/users/update_spec.rb +1 -1
  160. data/spec/integration/arguments_spec.rb +76 -0
  161. data/spec/{github → integration}/authorizations_spec.rb +0 -0
  162. metadata +44 -35
  163. data/spec/github/repos/pub_sub_hubbub_spec.rb +0 -78
@@ -24,22 +24,20 @@ module Github
24
24
  # <tt>:direction</tt> - <tt>asc</tt>, <tt>desc</tt>, default: <tt>desc</tt>
25
25
  #
26
26
  # = Examples
27
- # github = Github.new :user => 'user-name', :repo => 'repo-name'
27
+ # github = Github.new user: 'user-name', repo: 'repo-name'
28
28
  # github.issues.milestones.list
29
29
  #
30
30
  # or
31
31
  #
32
- # github.issues.milestones.list :state => 'open',
33
- # :sort => 'due_date',
34
- # :direction => 'asc'
32
+ # github.issues.milestones.list state: 'open', sort: 'due_date',
33
+ # direction: 'asc'
35
34
  #
36
- def list(user_name, repo_name, params={})
37
- set :user => user_name, :repo => repo_name
38
- assert_presence_of user, repo
39
-
40
- normalize! params
41
- filter! VALID_MILESTONE_OPTIONS.keys, params
42
- assert_valid_values(VALID_MILESTONE_OPTIONS, params)
35
+ def list(*args)
36
+ arguments(args, :required => [:user, :repo]) do
37
+ sift VALID_MILESTONE_OPTIONS.keys
38
+ assert_values VALID_MILESTONE_OPTIONS
39
+ end
40
+ params = arguments.params
43
41
 
44
42
  response = get_request("/repos/#{user}/#{repo}/milestones", params)
45
43
  return response unless block_given?
@@ -53,10 +51,9 @@ module Github
53
51
  # github = Github.new
54
52
  # github.issues.milestones.get 'user-name', 'repo-name', 'milestone-id'
55
53
  #
56
- def get(user_name, repo_name, milestone_id, params={})
57
- set :user => user_name, :repo => repo_name
58
- assert_presence_of user, repo, milestone_id
59
- normalize! params
54
+ def get(*args)
55
+ arguments(args, :required => [:user, :repo, :milestone_id])
56
+ params = arguments.params
60
57
 
61
58
  get_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
62
59
  end
@@ -77,15 +74,13 @@ module Github
77
74
  # :description => "String",
78
75
  # :due_on => "Time"
79
76
  #
80
- def create(user_name, repo_name, params={})
81
- set :user => user_name, :repo => repo_name
82
- assert_presence_of user, repo
77
+ def create(*args)
78
+ arguments(args, :required => [:user, :repo]) do
79
+ sift VALID_MILESTONE_INPUTS
80
+ assert_required %w[ title ]
81
+ end
83
82
 
84
- normalize! params
85
- filter! VALID_MILESTONE_INPUTS, params
86
- assert_required_keys(%w[ title ], params)
87
-
88
- post_request("/repos/#{user}/#{repo}/milestones", params)
83
+ post_request("/repos/#{user}/#{repo}/milestones", arguments.params)
89
84
  end
90
85
 
91
86
  # Update a milestone
@@ -104,12 +99,11 @@ module Github
104
99
  # :description => "String",
105
100
  # :due_on => "Time"
106
101
  #
107
- def update(user_name, repo_name, milestone_id, params={})
108
- set :user => user_name, :repo => repo_name
109
- assert_presence_of user, repo, milestone_id
110
-
111
- normalize! params
112
- filter! VALID_MILESTONE_INPUTS, params
102
+ def update(*args)
103
+ arguments(args, :required => [:user, :repo, :milestone_id]) do
104
+ sift VALID_MILESTONE_INPUTS
105
+ end
106
+ params = arguments.params
113
107
 
114
108
  patch_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
115
109
  end
@@ -120,10 +114,9 @@ module Github
120
114
  # github = Github.new
121
115
  # github.issues.milestones.delete 'user-name', 'repo-name', 'milestone-id'
122
116
  #
123
- def delete(user_name, repo_name, milestone_id, params={})
124
- set :user => user_name, :repo => repo_name
125
- assert_presence_of user, repo, milestone_id
126
- normalize! params
117
+ def delete(*args)
118
+ arguments(args, :required => [:user, :repo, :milestone_id])
119
+ params = arguments.params
127
120
 
128
121
  delete_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
129
122
  end
@@ -25,11 +25,11 @@ module Github
25
25
  # "context": "github/gollum"
26
26
  #
27
27
  def render(*args)
28
- params = args.extract_options!
29
- normalize! params
28
+ arguments(args) do
29
+ assert_required ['text']
30
+ end
30
31
 
31
- assert_required_keys ['text'], params
32
- post_request("markdown", params, :raw => true)
32
+ post_request("markdown", arguments.params, :raw => true)
33
33
  end
34
34
 
35
35
 
@@ -47,8 +47,7 @@ module Github
47
47
  # "mime": "text/plain",
48
48
  #
49
49
  def render_raw(*args)
50
- params = args.extract_options!
51
- normalize! params
50
+ params = arguments(args).params
52
51
  mime_type, params['data'] = params['mime'], args.shift
53
52
 
54
53
  post_request("markdown/raw", params, :raw => true,
@@ -9,10 +9,10 @@ module Github
9
9
  #
10
10
  # Github.meta.get
11
11
  #
12
- def get(params={})
13
- normalize! params
12
+ def get(*args)
13
+ arguments(*args)
14
14
 
15
- get_request("/meta", params)
15
+ get_request("/meta", arguments.params)
16
16
  end
17
17
 
18
18
  end # Meta
@@ -38,8 +38,7 @@ module Github
38
38
  # github.orgs.list
39
39
  #
40
40
  def list(*args)
41
- params = args.extract_options!
42
- normalize! params
41
+ params = arguments(args).params
43
42
 
44
43
  response = if (user_name = params.delete("user"))
45
44
  get_request("/users/#{user_name}/orgs", params)
@@ -58,10 +57,10 @@ module Github
58
57
  # github = Github.new
59
58
  # github.orgs.get 'github'
60
59
  #
61
- def get(org_name, params={})
62
- assert_presence_of org_name
63
- normalize! params
64
- get_request("/orgs/#{org_name}", params)
60
+ def get(*args)
61
+ arguments(args, :required => [:org_name])
62
+
63
+ get_request("/orgs/#{org_name}", arguments.params)
65
64
  end
66
65
  alias :find :get
67
66
 
@@ -84,12 +83,12 @@ module Github
84
83
  # "location": "San Francisco",
85
84
  # "name": "github"
86
85
  #
87
- def edit(org_name, params={})
88
- assert_presence_of org_name
89
- normalize! params
90
- filter! VALID_ORG_PARAM_NAMES, params
86
+ def edit(*args)
87
+ arguments(args, :required => [:org_name]) do
88
+ sift VALID_ORG_PARAM_NAMES
89
+ end
91
90
 
92
- patch_request("/orgs/#{org_name}", params)
91
+ patch_request("/orgs/#{org_name}", arguments.params)
93
92
  end
94
93
 
95
94
  end # Orgs
@@ -24,9 +24,8 @@ module Github
24
24
  # github.orgs.members.list 'org-name', :public => true
25
25
  # github.orgs.members.list 'org-name', :public => true { |memb| ... }
26
26
  #
27
- def list(org_name, params={})
28
- assert_presence_of org_name
29
- normalize! params
27
+ def list(*args)
28
+ params = arguments(args, :required => [:org_name]).params
30
29
 
31
30
  response = if params.delete('public')
32
31
  get_request("/orgs/#{org_name}/public_members", params)
@@ -50,14 +49,13 @@ module Github
50
49
  # github = Github.new
51
50
  # github.orgs.members.member? 'org-name', 'member-name', :public => true
52
51
  #
53
- def member?(org_name, member_name, params={})
54
- assert_presence_of org_name, member_name
55
- normalize! params
52
+ def member?(*args)
53
+ params = arguments(args, :required => [:org_name, :user]).params
56
54
 
57
55
  response = if params.delete('public')
58
- get_request("/orgs/#{org_name}/public_members/#{member_name}", params)
56
+ get_request("/orgs/#{org_name}/public_members/#{user}", params)
59
57
  else
60
- get_request("/orgs/#{org_name}/members/#{member_name}", params)
58
+ get_request("/orgs/#{org_name}/members/#{user}", params)
61
59
  end
62
60
  response.status == 204
63
61
  rescue Github::Error::NotFound
@@ -72,10 +70,10 @@ module Github
72
70
  # github = Github.new
73
71
  # github.orgs.members.remove 'org-name', 'member-name'
74
72
  #
75
- def delete(org_name, member_name, params={})
76
- assert_presence_of org_name, member_name
77
- normalize! params
78
- delete_request("/orgs/#{org_name}/members/#{member_name}", params)
73
+ def delete(*args)
74
+ arguments(args, :required => [:org_name, :user])
75
+
76
+ delete_request("/orgs/#{org_name}/members/#{user}", arguments.params)
79
77
  end
80
78
  alias :remove :delete
81
79
 
@@ -85,10 +83,10 @@ module Github
85
83
  # github = Github.new :oauth_token => '...'
86
84
  # github.orgs.members.publicize 'org-name', 'member-name'
87
85
  #
88
- def publicize(org_name, member_name, params={})
89
- assert_presence_of org_name, member_name
90
- normalize! params
91
- put_request("/orgs/#{org_name}/public_members/#{member_name}", params)
86
+ def publicize(*args)
87
+ arguments(args, :required => [:org_name, :user])
88
+
89
+ put_request("/orgs/#{org_name}/public_members/#{user}", arguments.params)
92
90
  end
93
91
  alias :make_public :publicize
94
92
  alias :publicize_membership :publicize
@@ -99,10 +97,10 @@ module Github
99
97
  # github = Github.new :oauth_token => '...'
100
98
  # github.orgs.members.conceal 'org-name', 'member-name'
101
99
  #
102
- def conceal(org_name, member_name, params={})
103
- assert_presence_of org_name, member_name
104
- normalize! params
105
- delete_request("/orgs/#{org_name}/public_members/#{member_name}", params)
100
+ def conceal(*args)
101
+ arguments(args, :required => [:org_name, :user])
102
+
103
+ delete_request("/orgs/#{org_name}/public_members/#{user}", arguments.params)
106
104
  end
107
105
  alias :conceal_membership :conceal
108
106
 
@@ -17,11 +17,10 @@ module Github
17
17
  # github = Github.new :oauth_token => '...'
18
18
  # github.orgs.teams.list 'org-name'
19
19
  #
20
- def list(org_name, params={})
21
- assert_presence_of org_name
22
- normalize! params
20
+ def list(*args)
21
+ arguments(args, :required => [:org_name])
23
22
 
24
- response = get_request("/orgs/#{org_name}/teams", params)
23
+ response = get_request("/orgs/#{org_name}/teams", arguments.params)
25
24
  return response unless block_given?
26
25
  response.each { |el| yield el }
27
26
  end
@@ -33,11 +32,10 @@ module Github
33
32
  # github = Github.new :oauth_token => '...'
34
33
  # github.orgs.teams.get 'team-id'
35
34
  #
36
- def get(team_id, params={})
37
- assert_presence_of team_id
38
- normalize! params
35
+ def get(*args)
36
+ arguments(args, :required => [:team_id])
39
37
 
40
- get_request("/teams/#{team_id}", params)
38
+ get_request("/teams/#{team_id}", arguments.params)
41
39
  end
42
40
  alias :find :get
43
41
 
@@ -61,14 +59,14 @@ module Github
61
59
  # "github/dotfiles"
62
60
  # ]
63
61
  #
64
- def create(org_name, params={})
65
- assert_presence_of org_name
66
- normalize! params
67
- filter! VALID_TEAM_PARAM_NAMES, params
68
- assert_valid_values(VALID_TEAM_PARAM_VALUES, params)
69
- assert_required_keys(%w[ name ], params)
62
+ def create(*args)
63
+ arguments(args, :required => [:org_name]) do
64
+ sift VALID_TEAM_PARAM_NAMES
65
+ assert_values VALID_TEAM_PARAM_VALUES
66
+ assert_required %w[name]
67
+ end
70
68
 
71
- post_request("/orgs/#{org_name}/teams", params)
69
+ post_request("/orgs/#{org_name}/teams", arguments.params)
72
70
  end
73
71
 
74
72
  # Edit a team
@@ -87,14 +85,14 @@ module Github
87
85
  # "name" => "new team name",
88
86
  # "permission" => "push"
89
87
  #
90
- def edit(team_id, params={})
91
- assert_presence_of team_id
92
- normalize! params
93
- filter! VALID_TEAM_PARAM_NAMES, params
94
- assert_valid_values(VALID_TEAM_PARAM_VALUES, params)
95
- assert_required_keys(%w[ name ], params)
88
+ def edit(*args)
89
+ arguments(args, :required => [:team_id]) do
90
+ sift VALID_TEAM_PARAM_NAMES
91
+ assert_values VALID_TEAM_PARAM_VALUES
92
+ assert_required %w[name]
93
+ end
96
94
 
97
- patch_request("/teams/#{team_id}", params)
95
+ patch_request("/teams/#{team_id}", arguments.params)
98
96
  end
99
97
 
100
98
  # Delete a team
@@ -104,10 +102,10 @@ module Github
104
102
  # github = Github.new :oauth_token => '...'
105
103
  # github.orgs.teams.delete 'team-id'
106
104
  #
107
- def delete(team_id, params={})
108
- assert_presence_of team_id
109
- normalize! params
110
- delete_request("/teams/#{team_id}", params)
105
+ def delete(*args)
106
+ arguments(args, :required => [:team_id])
107
+
108
+ delete_request("/teams/#{team_id}", arguments.params)
111
109
  end
112
110
  alias :remove :delete
113
111
 
@@ -119,11 +117,10 @@ module Github
119
117
  # github.orgs.teams.list_members 'team-id'
120
118
  # github.orgs.teams.list_members 'team-id' { |member| ... }
121
119
  #
122
- def list_members(team_id, params={})
123
- assert_presence_of team_id
124
- normalize! params
120
+ def list_members(*args)
121
+ arguments(args, :required => [:team_id])
125
122
 
126
- response = get_request("/teams/#{team_id}/members", params)
123
+ response = get_request("/teams/#{team_id}/members", arguments.params)
127
124
  return response unless block_given?
128
125
  response.each { |el| yield el }
129
126
  end
@@ -135,10 +132,10 @@ module Github
135
132
  # github = Github.new :oauth_token => '...'
136
133
  # github.orgs.teams.team_member? 'team-id', 'user-name'
137
134
  #
138
- def team_member?(team_id, user_name, params={})
139
- assert_presence_of team_id, user_name
140
- normalize! params
141
- response = get_request("/teams/#{team_id}/members/#{user_name}", params)
135
+ def team_member?(*args)
136
+ arguments(args, :required => [:team_id, :user])
137
+
138
+ response = get_request("/teams/#{team_id}/members/#{user}", arguments.params)
142
139
  response.status == 204
143
140
  rescue Github::Error::NotFound
144
141
  false
@@ -151,10 +148,10 @@ module Github
151
148
  # github = Github.new :oauth_token => '...'
152
149
  # github.orgs.teams.add_member 'team-id', 'user-name'
153
150
  #
154
- def add_member(team_id, user_name, params={})
155
- assert_presence_of team_id, user_name
156
- normalize! params
157
- put_request("/teams/#{team_id}/members/#{user_name}", params)
151
+ def add_member(*args)
152
+ arguments(args, :required => [:team_id, :user])
153
+
154
+ put_request("/teams/#{team_id}/members/#{user}", arguments.params)
158
155
  end
159
156
  alias :add_team_member :add_member
160
157
 
@@ -169,10 +166,10 @@ module Github
169
166
  # github = Github.new :oauth_token => '...'
170
167
  # github.orgs.teams.remove_member 'team-id', 'user-name'
171
168
  #
172
- def remove_member(team_id, user_name, params={})
173
- assert_presence_of team_id, user_name
174
- normalize! params
175
- delete_request("/teams/#{team_id}/members/#{user_name}", params)
169
+ def remove_member(*args)
170
+ arguments(args, :required => [:team_id, :user])
171
+
172
+ delete_request("/teams/#{team_id}/members/#{user}", arguments.params)
176
173
  end
177
174
  alias :remove_team_member :remove_member
178
175
 
@@ -182,11 +179,10 @@ module Github
182
179
  # github = Github.new :oauth_token => '...'
183
180
  # github.orgs.teams.list_repos 'team-id'
184
181
  #
185
- def list_repos(team_id, params={})
186
- assert_presence_of team_id
187
- normalize! params
182
+ def list_repos(*args)
183
+ arguments(args, :required => [:team_id])
188
184
 
189
- response = get_request("/teams/#{team_id}/repos", params)
185
+ response = get_request("/teams/#{team_id}/repos", arguments.params)
190
186
  return response unless block_given?
191
187
  response.each { |el| yield el }
192
188
  end
@@ -198,10 +194,10 @@ module Github
198
194
  # github = Github.new :oauth_token => '...'
199
195
  # github.orgs.teams.team_repo? 'team-id', 'user-name', 'repo-name'
200
196
  #
201
- def team_repo?(team_id, user_name, repo_name, params={})
202
- assert_presence_of team_id, user_name, repo_name
203
- normalize! params
204
- response = get_request("/teams/#{team_id}/repos/#{user_name}/#{repo_name}", params)
197
+ def team_repo?(*args)
198
+ arguments(args, :required => [:team_id, :user, :repo])
199
+
200
+ response = get_request("/teams/#{team_id}/repos/#{user}/#{repo}", arguments.params)
205
201
  response.status == 204
206
202
  rescue Github::Error::NotFound
207
203
  false
@@ -219,10 +215,10 @@ module Github
219
215
  # github = Github.new :oauth_token => '...'
220
216
  # github.orgs.teams.add_repo 'team-id', 'user-name', 'repo-name'
221
217
  #
222
- def add_repo(team_id, user_name, repo_name, params={})
223
- assert_presence_of team_id, user_name, repo_name
224
- normalize! params
225
- put_request("/teams/#{team_id}/repos/#{user_name}/#{repo_name}", params)
218
+ def add_repo(*args)
219
+ arguments(args, :required => [:team_id, :user, :repo])
220
+
221
+ put_request("/teams/#{team_id}/repos/#{user}/#{repo}", arguments.params)
226
222
  end
227
223
  alias :add_repository :add_repo
228
224
 
@@ -236,10 +232,10 @@ module Github
236
232
  # github = Github.new :oauth_token => '...'
237
233
  # github.orgs.teams.remove_repo 'team-id', 'user-name', 'repo-name'
238
234
  #
239
- def remove_repo(team_id, user_name, repo_name, params={})
240
- assert_presence_of team_id, user_name, repo_name
241
- normalize! params
242
- delete_request("/teams/#{team_id}/repos/#{user_name}/#{repo_name}", params)
235
+ def remove_repo(*args)
236
+ arguments(args, :required => [:team_id, :user, :repo])
237
+
238
+ delete_request("/teams/#{team_id}/repos/#{user}/#{repo}", arguments.params)
243
239
  end
244
240
  alias :remove_repository :remove_repo
245
241