octokit 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3223500f5c72b31326d1cf845c6b7a17b6358da
4
- data.tar.gz: e71c06f9715dacf80ee5b733a2b43a5d592fa76f
3
+ metadata.gz: 50843d946bedec18101a1a6e8d891bd90300c10f
4
+ data.tar.gz: 7d1676c589e378ccda28887ea873674bd22e5c8b
5
5
  SHA512:
6
- metadata.gz: 1af6f44b0cfa14e334246c6ea2584018c6e82abd559d76fe2a51bb046745fd523379fc62fc9a1fe83f5c00410d5f7267df03edef34ce097616dc26331a76719f
7
- data.tar.gz: 6c08989ec80a29df2f5bd79fe093c85a8245d97e6bd716cf3fc6480ee1f783b848cbb7ed2560a7d4b3c221bd6f3d7375b58f766a1e4c777f2969999c9d9eff58
6
+ metadata.gz: 9dc114a9fd18130673eabe703a7f730690342b4b951ee48fe89a2aee0c055847e0a77eb621109ea6ba7db98a7bfe9bc0bfc82d7947c5877692df6123fe91d8fc
7
+ data.tar.gz: a28fcc8ccdef9d3b8b84685e9d3d0365351cea24640420414abefaf310b02cee1642bea38ddc39f9ad9f3bba5af0bf80d5eb1b36a18318a15ba04f5905fd5179
@@ -24,7 +24,7 @@ module Octokit
24
24
  # @see https://developer.github.com/v3/issues/#list-issues
25
25
  # @example List issues for a repository
26
26
  # Octokit.list_issues("sferik/rails_admin")
27
- # @example List issues for the authenticted user across repositories
27
+ # @example List issues for the authenticated user across repositories
28
28
  # @client = Octokit::Client.new(:login => 'foo', :password => 'bar')
29
29
  # @client.list_issues
30
30
  def list_issues(repository = nil, options = {})
@@ -45,7 +45,7 @@ module Octokit
45
45
  # format: YYYY-MM-DDTHH:MM:SSZ
46
46
  # @return [Array<Sawyer::Resource>] A list of issues for a repository.
47
47
  # @see https://developer.github.com/v3/issues/#list-issues
48
- # @example List issues for the authenticted user across owned and member repositories
48
+ # @example List issues for the authenticated user across owned and member repositories
49
49
  # @client = Octokit::Client.new(:login => 'foo', :password => 'bar')
50
50
  # @client.user_issues
51
51
  def user_issues(options = {})
@@ -6,6 +6,8 @@ module Octokit
6
6
  # @see https://developer.github.com/v3/orgs/
7
7
  module Organizations
8
8
 
9
+ ORG_INVITATIONS_PREVIEW_MEDIA_TYPE = "application/vnd.github.the-wasp-preview+json".freeze
10
+
9
11
  # Get an organization
10
12
  #
11
13
  # @param org [String, Integer] Organization GitHub login or id.
@@ -302,6 +304,15 @@ module Octokit
302
304
  # @see https://developer.github.com/v3/orgs/teams/#add-team-member
303
305
  # @example
304
306
  # @client.add_team_member(100000, 'pengwynn')
307
+ #
308
+ # @example
309
+ # # Invite a member to a team. The user won't be added to the
310
+ # # team until he/she accepts the invite via email.
311
+ # @client.add_team_member \
312
+ # 100000,
313
+ # 'pengwynn',
314
+ # :accept => "application/vnd.github.the-wasp-preview+json"
315
+ # @see https://developer.github.com/changes/2014-08-05-team-memberships-api/
305
316
  def add_team_member(team_id, user, options = {})
306
317
  # There's a bug in this API call. The docs say to leave the body blank,
307
318
  # but it fails if the body is both blank and the content-length header
@@ -473,6 +484,72 @@ module Octokit
473
484
  def user_teams(options = {})
474
485
  paginate "/user/teams", options
475
486
  end
487
+
488
+ # Check if a user has a team membership.
489
+ #
490
+ # @param team_id [Integer] Team id.
491
+ # @param user [String] GitHub username of the user to check.
492
+ #
493
+ # @return [Sawyer::Resource] Hash of team membership info
494
+ #
495
+ # @see https://developer.github.com/v3/orgs/teams/#get-team-membership
496
+ #
497
+ # @example Check if a user has a membership for a team
498
+ # @client.team_membership(1234, 'pengwynn')
499
+ # => false
500
+ def team_membership(team_id, user, options = {})
501
+ options = ensure_org_invitations_api_media_type(options)
502
+ get "teams/#{team_id}/memberships/#{user}", options
503
+ end
504
+
505
+ # Invite a user to a team
506
+ #
507
+ # @param team_id [Integer] Team id.
508
+ # @param user [String] GitHub username of the user to invite.
509
+ #
510
+ # @return [Sawyer::Resource] Hash of team membership info
511
+ #
512
+ # @see https://developer.github.com/v3/orgs/teams/#add-team-membership
513
+ #
514
+ # @example Check if a user has a membership for a team
515
+ # @client.add_team_membership(1234, 'pengwynn')
516
+ # => false
517
+ def add_team_membership(team_id, user, options = {})
518
+ options = ensure_org_invitations_api_media_type(options)
519
+ put "teams/#{team_id}/memberships/#{user}", options
520
+ end
521
+
522
+ # Remove team membership
523
+ #
524
+ # @param team_id [Integer] Team id.
525
+ # @param user [String] GitHub username of the user to boot.
526
+ # @return [Boolean] True if user removed, false otherwise.
527
+ # @see https://developer.github.com/v3/orgs/teams/#remove-team-membership
528
+ # @example
529
+ # @client.remove_team_membership(100000, 'pengwynn')
530
+ def remove_team_membership(team_id, user, options = {})
531
+ options = ensure_org_invitations_api_media_type(options)
532
+ boolean_from_response :delete, "teams/#{team_id}/memberships/#{user}", options
533
+ end
534
+
535
+ private
536
+
537
+ def ensure_org_invitations_api_media_type(options = {})
538
+ if options[:accept].nil?
539
+ options[:accept] = ORG_INVITATIONS_PREVIEW_MEDIA_TYPE
540
+ warn_org_invitations_preview
541
+ end
542
+
543
+ options
544
+ end
545
+
546
+ def warn_org_invitations_preview
547
+ octokit_warn \
548
+ "WARNING: The preview version of the Organization Team Memberships API " \
549
+ "is not yet suitable for production use. You can avoid this message by " \
550
+ "supplying an appropriate media type in the 'Accept' request header. " \
551
+ "See the blog post for details: http://git.io/a9jglQ"
552
+ end
476
553
  end
477
554
  end
478
555
  end
@@ -2,6 +2,6 @@ module Octokit
2
2
 
3
3
  # Current version
4
4
  # @return [String]
5
- VERSION = "3.2.0".freeze
5
+ VERSION = "3.3.0".freeze
6
6
 
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-06-24 00:00:00.000000000 Z
13
+ date: 2014-08-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -54,10 +54,11 @@ files:
54
54
  - LICENSE.md
55
55
  - README.md
56
56
  - Rakefile
57
- - octokit.gemspec
57
+ - lib/octokit.rb
58
58
  - lib/octokit/arguments.rb
59
59
  - lib/octokit/authentication.rb
60
60
  - lib/octokit/backports/uri.rb
61
+ - lib/octokit/client.rb
61
62
  - lib/octokit/client/authorizations.rb
62
63
  - lib/octokit/client/commit_comments.rb
63
64
  - lib/octokit/client/commits.rb
@@ -92,7 +93,6 @@ files:
92
93
  - lib/octokit/client/stats.rb
93
94
  - lib/octokit/client/statuses.rb
94
95
  - lib/octokit/client/users.rb
95
- - lib/octokit/client.rb
96
96
  - lib/octokit/configurable.rb
97
97
  - lib/octokit/default.rb
98
98
  - lib/octokit/error.rb
@@ -105,7 +105,7 @@ files:
105
105
  - lib/octokit/response/raise_error.rb
106
106
  - lib/octokit/user.rb
107
107
  - lib/octokit/version.rb
108
- - lib/octokit.rb
108
+ - octokit.gemspec
109
109
  homepage: https://github.com/octokit/octokit.rb
110
110
  licenses:
111
111
  - MIT
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
126
  version: 1.3.5
127
127
  requirements: []
128
128
  rubyforge_project:
129
- rubygems_version: 2.0.3
129
+ rubygems_version: 2.2.2
130
130
  signing_key:
131
131
  specification_version: 4
132
132
  summary: Ruby toolkit for working with the GitHub API