octokit 3.2.0 → 3.3.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 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