github_api 0.7.2 → 0.8.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.
- data/README.md +6 -5
- data/features/{events.feature → activity/events.feature} +8 -8
- data/features/{repos → activity}/starring.feature +6 -6
- data/features/{repos → activity}/watching.feature +6 -6
- data/features/cassettes/{events → activity/events}/issue.yml +0 -0
- data/features/cassettes/{events → activity/events}/network.yml +0 -0
- data/features/cassettes/{events → activity/events}/org.yml +0 -0
- data/features/cassettes/{events → activity/events}/performed.yml +0 -0
- data/features/cassettes/{events → activity/events}/public.yml +0 -0
- data/features/cassettes/{events → activity/events}/received.yml +0 -0
- data/features/cassettes/{events → activity/events}/repo.yml +0 -0
- data/features/cassettes/{events → activity/events}/user_org.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/list.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/star.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/starred.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/starring.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/unstar.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/list.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/unwatch.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watch.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watched.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watching.yml +0 -0
- data/features/github_api.feature +3 -3
- data/lib/github_api.rb +1 -1
- data/lib/github_api/activity.rb +39 -0
- data/lib/github_api/{events.rb → activity/events.rb} +5 -5
- data/lib/github_api/activity/notifications.rb +162 -0
- data/lib/github_api/{repos → activity}/starring.rb +9 -9
- data/lib/github_api/{repos → activity}/watching.rb +9 -9
- data/lib/github_api/client.rb +6 -4
- data/lib/github_api/repos.rb +2 -14
- data/lib/github_api/response.rb +0 -1
- data/lib/github_api/version.rb +2 -2
- data/spec/fixtures/activity/notifications.json +32 -0
- data/spec/fixtures/activity/subscribed.json +8 -0
- data/spec/fixtures/activity/threads.json +32 -0
- data/spec/github/activity/activity_spec.rb +16 -0
- data/spec/github/activity/events/issue_spec.rb +63 -0
- data/spec/github/activity/events/network_spec.rb +61 -0
- data/spec/github/activity/events/org_spec.rb +60 -0
- data/spec/github/activity/events/performed_spec.rb +91 -0
- data/spec/github/activity/events/public_spec.rb +55 -0
- data/spec/github/activity/events/received_spec.rb +91 -0
- data/spec/github/activity/events/repository_spec.rb +65 -0
- data/spec/github/activity/events/user_org_spec.rb +63 -0
- data/spec/github/activity/notifications/create_spec.rb +44 -0
- data/spec/github/activity/notifications/delete_spec.rb +41 -0
- data/spec/github/activity/notifications/get_spec.rb +58 -0
- data/spec/github/activity/notifications/list_spec.rb +82 -0
- data/spec/github/activity/notifications/mark_spec.rb +74 -0
- data/spec/github/activity/notifications/subscribed_spec.rb +48 -0
- data/spec/github/activity/starring/list_spec.rb +64 -0
- data/spec/github/activity/starring/star_spec.rb +36 -0
- data/spec/github/activity/starring/starred_spec.rb +53 -0
- data/spec/github/activity/starring/starring_spec.rb +38 -0
- data/spec/github/activity/starring/unstar_spec.rb +37 -0
- data/spec/github/activity/watching/list_spec.rb +59 -0
- data/spec/github/activity/watching/unwatch_spec.rb +37 -0
- data/spec/github/activity/watching/watch_spec.rb +37 -0
- data/spec/github/activity/watching/watched_spec.rb +53 -0
- data/spec/github/activity/watching/watching_spec.rb +41 -0
- data/spec/github/authorization_spec.rb +2 -2
- data/spec/github/issues_spec.rb +1 -1
- data/spec/github/repos/comments/delete_spec.rb +2 -0
- data/spec/github/repos/delete_spec.rb +1 -1
- data/spec/github/repos/get_spec.rb +2 -2
- data/spec/github/repos/starring_spec.rb +0 -199
- data/spec/github/repos_spec.rb +0 -4
- data/spec/github/result_spec.rb +1 -1
- metadata +88 -62
- data/features/cassettes/git_data/tags/get.yml +0 -54
- data/features/git_data/tags.feature +0 -17
- data/spec/github/events_spec.rb +0 -491
- data/spec/github/repos/watching_spec.rb +0 -203
data/README.md
CHANGED
@@ -16,11 +16,12 @@ Supports all the API methods(nearly 200). It's build in a modular way, that is,
|
|
16
16
|
* Intuitive GitHub API interface navigation.
|
17
17
|
* Modular design allows for working with parts of API.
|
18
18
|
* Fully customizable including advanced middleware stack construction.
|
19
|
+
* Its comprehensive, you can request all GitHub API resources.
|
19
20
|
* Requests pagination.
|
20
21
|
* Easy error handling.
|
21
|
-
* Custom
|
22
|
-
* Flexible arguments parsing (In progress).
|
23
|
-
*
|
22
|
+
* Custom mime types specification (Status: TODO)
|
23
|
+
* Flexible arguments parsing (Status: In progress).
|
24
|
+
* Fully tested with test coverage above 90% with over 1,200 specs and 500 features.
|
24
25
|
|
25
26
|
## Installation
|
26
27
|
|
@@ -160,7 +161,7 @@ Github - full API access
|
|
160
161
|
|
161
162
|
Github::Gists Github::GitData Github::Repos Github::Search
|
162
163
|
Github::Orgs Github::Issues Github::Authorizations
|
163
|
-
Github::PullRequests Github::Users Github::
|
164
|
+
Github::PullRequests Github::Users Github::Activity
|
164
165
|
```
|
165
166
|
|
166
167
|
Some parts of GitHub API v3 require you to be autheticated, for instance the following are examples of APIs only for the authenticated user
|
@@ -367,7 +368,7 @@ users.emails.add 'email1', 'email2', ..., 'emailn' # => Adds emails to the authe
|
|
367
368
|
If a method returns a collection, you can iterator over it by supplying a block parameter,
|
368
369
|
|
369
370
|
```ruby
|
370
|
-
events = Github::Events.new
|
371
|
+
events = Github::Activity::Events.new
|
371
372
|
events.public do |event|
|
372
373
|
puts event.actor.login
|
373
374
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Feature: Events API
|
2
2
|
|
3
3
|
Background:
|
4
|
-
Given I have "Github::Events" instance
|
4
|
+
Given I have "Github::Activity::Events" instance
|
5
5
|
|
6
6
|
Scenario: Public
|
7
7
|
|
8
8
|
Given I want public resources
|
9
|
-
When I make request within a cassette named "events/public"
|
9
|
+
When I make request within a cassette named "activity/events/public"
|
10
10
|
Then the response status should be 200
|
11
11
|
And the response type should be JSON
|
12
12
|
And the response should not be empty
|
@@ -16,7 +16,7 @@ Feature: Events API
|
|
16
16
|
Given I want repository resources with the following params:
|
17
17
|
| user | repo |
|
18
18
|
| wycats | thor |
|
19
|
-
When I make request within a cassette named "events/repo"
|
19
|
+
When I make request within a cassette named "activity/events/repo"
|
20
20
|
Then the response status should be 200
|
21
21
|
And the response type should be JSON
|
22
22
|
And the response should not be empty
|
@@ -26,7 +26,7 @@ Feature: Events API
|
|
26
26
|
Given I want issue resources with the following params:
|
27
27
|
| user | repo |
|
28
28
|
| wycats | thor |
|
29
|
-
When I make request within a cassette named "events/issue"
|
29
|
+
When I make request within a cassette named "activity/events/issue"
|
30
30
|
Then the response status should be 200
|
31
31
|
And the response type should be JSON
|
32
32
|
And the response should not be empty
|
@@ -36,7 +36,7 @@ Feature: Events API
|
|
36
36
|
Given I want network resources with the following params:
|
37
37
|
| user | repo |
|
38
38
|
| wycats | thor |
|
39
|
-
When I make request within a cassette named "events/network"
|
39
|
+
When I make request within a cassette named "activity/events/network"
|
40
40
|
Then the response status should be 200
|
41
41
|
And the response type should be JSON
|
42
42
|
And the response should not be empty
|
@@ -46,7 +46,7 @@ Feature: Events API
|
|
46
46
|
Given I want org resources with the following params:
|
47
47
|
| org |
|
48
48
|
| rails |
|
49
|
-
When I make request within a cassette named "events/org"
|
49
|
+
When I make request within a cassette named "activity/events/org"
|
50
50
|
Then the response status should be 200
|
51
51
|
And the response type should be JSON
|
52
52
|
And the response should not be empty
|
@@ -56,7 +56,7 @@ Feature: Events API
|
|
56
56
|
Given I want received resources with the following params:
|
57
57
|
| user |
|
58
58
|
| josevalim |
|
59
|
-
When I make request within a cassette named "events/received"
|
59
|
+
When I make request within a cassette named "activity/events/received"
|
60
60
|
Then the response status should be 200
|
61
61
|
And the response type should be JSON
|
62
62
|
And the response should not be empty
|
@@ -66,7 +66,7 @@ Feature: Events API
|
|
66
66
|
Given I want performed resources with the following params:
|
67
67
|
| user |
|
68
68
|
| josevalim |
|
69
|
-
When I make request within a cassette named "events/performed"
|
69
|
+
When I make request within a cassette named "activity/events/performed"
|
70
70
|
Then the response status should be 200
|
71
71
|
And the response type should be JSON
|
72
72
|
And the response should not be empty
|
@@ -1,14 +1,14 @@
|
|
1
1
|
Feature: Starring API
|
2
2
|
|
3
3
|
Background:
|
4
|
-
Given I have "Github::
|
4
|
+
Given I have "Github::Activity::Starring" instance
|
5
5
|
|
6
6
|
Scenario: List
|
7
7
|
|
8
8
|
Given I want to list resources with the following params:
|
9
9
|
| user | repo |
|
10
10
|
| peter-murach | github |
|
11
|
-
When I make request within a cassette named "
|
11
|
+
When I make request within a cassette named "activity/starring/list"
|
12
12
|
Then the response status should be 200
|
13
13
|
And the response type should be JSON
|
14
14
|
And the response should not be empty
|
@@ -19,7 +19,7 @@ Feature: Starring API
|
|
19
19
|
And I pass the following request options:
|
20
20
|
| user |
|
21
21
|
| wycats |
|
22
|
-
When I make request within a cassette named "
|
22
|
+
When I make request within a cassette named "activity/starring/starred"
|
23
23
|
Then the response status should be 200
|
24
24
|
And the response type should be JSON
|
25
25
|
And the response should not be empty
|
@@ -29,7 +29,7 @@ Feature: Starring API
|
|
29
29
|
Given I want to starring? resource with the following params:
|
30
30
|
| user | repo |
|
31
31
|
| peter-murach | github |
|
32
|
-
When I make request within a cassette named "
|
32
|
+
When I make request within a cassette named "activity/starring/starring"
|
33
33
|
Then the response should be false
|
34
34
|
|
35
35
|
Scenario: Star
|
@@ -37,7 +37,7 @@ Feature: Starring API
|
|
37
37
|
Given I want to star resource with the following params:
|
38
38
|
| user | repo |
|
39
39
|
| peter-murach | github |
|
40
|
-
When I make request within a cassette named "
|
40
|
+
When I make request within a cassette named "activity/starring/star"
|
41
41
|
Then the response status should be 204
|
42
42
|
|
43
43
|
Scenario: Unstar
|
@@ -45,6 +45,6 @@ Feature: Starring API
|
|
45
45
|
Given I want to unstar resource with the following params:
|
46
46
|
| user | repo |
|
47
47
|
| peter-murach | github |
|
48
|
-
When I make request within a cassette named "
|
48
|
+
When I make request within a cassette named "activity/starring/unstar"
|
49
49
|
Then the response status should be 204
|
50
50
|
|
@@ -1,14 +1,14 @@
|
|
1
1
|
Feature: Watching API
|
2
2
|
|
3
3
|
Background:
|
4
|
-
Given I have "Github::
|
4
|
+
Given I have "Github::Activity::Watching" instance
|
5
5
|
|
6
6
|
Scenario: List
|
7
7
|
|
8
8
|
Given I want to list resources with the following params:
|
9
9
|
| user | repo |
|
10
10
|
| peter-murach | github |
|
11
|
-
When I make request within a cassette named "
|
11
|
+
When I make request within a cassette named "activity/watching/list"
|
12
12
|
Then the response status should be 200
|
13
13
|
And the response type should be JSON
|
14
14
|
And the response should not be empty
|
@@ -19,7 +19,7 @@ Feature: Watching API
|
|
19
19
|
And I pass the following request options:
|
20
20
|
| user |
|
21
21
|
| wycats |
|
22
|
-
When I make request within a cassette named "
|
22
|
+
When I make request within a cassette named "activity/watching/watched"
|
23
23
|
Then the response status should be 200
|
24
24
|
And the response type should be JSON
|
25
25
|
And the response should not be empty
|
@@ -29,7 +29,7 @@ Feature: Watching API
|
|
29
29
|
Given I want to watching? resource with the following params:
|
30
30
|
| user | repo |
|
31
31
|
| peter-murach | github |
|
32
|
-
When I make request within a cassette named "
|
32
|
+
When I make request within a cassette named "activity/watching/watching"
|
33
33
|
Then the response should be false
|
34
34
|
|
35
35
|
Scenario: Watch
|
@@ -37,7 +37,7 @@ Feature: Watching API
|
|
37
37
|
Given I want to watch resource with the following params:
|
38
38
|
| user | repo |
|
39
39
|
| peter-murach | github |
|
40
|
-
When I make request within a cassette named "
|
40
|
+
When I make request within a cassette named "activity/watching/watch"
|
41
41
|
Then the response status should be 204
|
42
42
|
|
43
43
|
Scenario: Unwatch
|
@@ -45,6 +45,6 @@ Feature: Watching API
|
|
45
45
|
Given I want to unwatch resource with the following params:
|
46
46
|
| user | repo |
|
47
47
|
| peter-murach | github |
|
48
|
-
When I make request within a cassette named "
|
48
|
+
When I make request within a cassette named "activity/watching/unwatch"
|
49
49
|
Then the response status should be 204
|
50
50
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/features/github_api.feature
CHANGED
@@ -49,10 +49,10 @@ Feature: Github API components
|
|
49
49
|
When I fetch "users"
|
50
50
|
Then I will have access to "Github::Users" API
|
51
51
|
|
52
|
-
Scenario: Accessing
|
52
|
+
Scenario: Accessing activity API
|
53
53
|
Given I have github instance
|
54
|
-
When I fetch "
|
55
|
-
Then I will have access to "Github::
|
54
|
+
When I fetch "activity"
|
55
|
+
Then I will have access to "Github::Activity" API
|
56
56
|
|
57
57
|
Scenario: Accessing authorizations API
|
58
58
|
Given I have github instance
|
data/lib/github_api.rb
CHANGED
@@ -60,6 +60,7 @@ module Github
|
|
60
60
|
|
61
61
|
autoload_all 'github_api',
|
62
62
|
:API => 'api',
|
63
|
+
:Activity => 'activity',
|
63
64
|
:ApiFactory => 'api_factory',
|
64
65
|
:Client => 'client',
|
65
66
|
:Repos => 'repos',
|
@@ -73,7 +74,6 @@ module Github
|
|
73
74
|
:Orgs => 'orgs',
|
74
75
|
:PullRequests => 'pull_requests',
|
75
76
|
:Users => 'users',
|
76
|
-
:Events => 'events',
|
77
77
|
:Emojis => 'emojis',
|
78
78
|
:Search => 'search',
|
79
79
|
:Markdown => 'markdown',
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github
|
4
|
+
class Activity < API
|
5
|
+
extend AutoloadHelper
|
6
|
+
|
7
|
+
autoload_all 'github_api/activity',
|
8
|
+
:Events => 'events',
|
9
|
+
:Notifications => 'notifications',
|
10
|
+
:Starring => 'starring',
|
11
|
+
:Watching => 'watching'
|
12
|
+
|
13
|
+
# Create new Activity API
|
14
|
+
def initialize(options = {})
|
15
|
+
super(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Access to Activity::Events API
|
19
|
+
def events(options = {})
|
20
|
+
@events ||= ApiFactory.new 'Activity::Events', options
|
21
|
+
end
|
22
|
+
|
23
|
+
# Access to Activity::Notifications API
|
24
|
+
def notifications
|
25
|
+
@notifications ||= ApiFactory.new 'Activity::Notifications'
|
26
|
+
end
|
27
|
+
|
28
|
+
# Access to Activity::Starring API
|
29
|
+
def starring
|
30
|
+
@starring ||= ApiFactory.new 'Activity::Starring'
|
31
|
+
end
|
32
|
+
|
33
|
+
# Access to Activity::Watching API
|
34
|
+
def watching
|
35
|
+
@watching ||= ApiFactory.new 'Activity::Watching'
|
36
|
+
end
|
37
|
+
|
38
|
+
end # Activity
|
39
|
+
end # Github
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Github
|
4
|
-
class Events < API
|
4
|
+
class Activity::Events < API
|
5
5
|
|
6
|
-
# Creates new
|
6
|
+
# Creates new Activity::Events API
|
7
7
|
def initialize(options = {})
|
8
8
|
super(options)
|
9
9
|
end
|
@@ -12,8 +12,8 @@ module Github
|
|
12
12
|
#
|
13
13
|
# = Examples
|
14
14
|
# github = Github.new
|
15
|
-
# github.events.public
|
16
|
-
# github.events.public { |event| ... }
|
15
|
+
# github.activity.events.public
|
16
|
+
# github.activity.events.public { |event| ... }
|
17
17
|
#
|
18
18
|
def public(params={})
|
19
19
|
normalize! params
|
@@ -198,5 +198,5 @@ module Github
|
|
198
198
|
alias :list_user_org_events :user_org
|
199
199
|
alias :list_user_organization_events :user_org
|
200
200
|
|
201
|
-
end # Events
|
201
|
+
end # Activity::Events
|
202
202
|
end # Github
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github
|
4
|
+
class Activity::Notifications < API
|
5
|
+
|
6
|
+
# Creates new Activity::Notifications API
|
7
|
+
def initialize(options = {})
|
8
|
+
super(options)
|
9
|
+
end
|
10
|
+
|
11
|
+
# List your notifications
|
12
|
+
#
|
13
|
+
# List all notifications for the current user, grouped by repository.
|
14
|
+
#
|
15
|
+
# = Parameters
|
16
|
+
# * <tt>:all</tt> - Optional boolean - true to show notifications marked as read.
|
17
|
+
# * <tt>:participating</tt> - Optional boolean - true to show only
|
18
|
+
# notifications in which the user is directly
|
19
|
+
# participating or mentioned.
|
20
|
+
# * <tt>:since</tt> - Optional string - filters out any notifications updated
|
21
|
+
# before the given time. The time should be passed in as
|
22
|
+
# UTC in the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
|
23
|
+
# Example: “2012-10-09T23:39:01Z”.
|
24
|
+
#
|
25
|
+
# = Examples
|
26
|
+
# github = Github.new oauth_token: 'token'
|
27
|
+
# github.activity.notifications.list
|
28
|
+
#
|
29
|
+
# List your notifications in a repository
|
30
|
+
#
|
31
|
+
# = Examples
|
32
|
+
# github = Github.new
|
33
|
+
# github.activity.notifications.list user: 'user-name', repo: 'repo-name'
|
34
|
+
#
|
35
|
+
def list(*args)
|
36
|
+
params = args.extract_options!
|
37
|
+
normalize! params
|
38
|
+
filter! %w[ all participating since user repo], params
|
39
|
+
|
40
|
+
response = if ( (user_name = params.delete("user")) &&
|
41
|
+
(repo_name = params.delete("repo")) )
|
42
|
+
get_request("/repos/#{user_name}/#{repo_name}/notifications", params)
|
43
|
+
else
|
44
|
+
get_request("/notifications", params)
|
45
|
+
end
|
46
|
+
return response unless block_given?
|
47
|
+
response.each { |el| yield el }
|
48
|
+
end
|
49
|
+
alias :all :list
|
50
|
+
|
51
|
+
# View a single thread
|
52
|
+
#
|
53
|
+
# = Examples
|
54
|
+
# github = Github.new oauth_token: 'token'
|
55
|
+
# github.activity.notifications.get 'thread_id'
|
56
|
+
# github.activity.notifications.get 'thread_id' { |thread| ... }
|
57
|
+
#
|
58
|
+
def get(thread_id, params={})
|
59
|
+
assert_presence_of thread_id
|
60
|
+
normalize! params
|
61
|
+
response = get_request("/notifications/threads/#{thread_id}", params)
|
62
|
+
return response unless block_given?
|
63
|
+
response.each { |el| yield el }
|
64
|
+
end
|
65
|
+
alias :find :get
|
66
|
+
|
67
|
+
# Mark as read
|
68
|
+
#
|
69
|
+
# Marking a notification as “read” removes it from the default view on GitHub.com.
|
70
|
+
#
|
71
|
+
# = Parameters
|
72
|
+
#
|
73
|
+
# * <tt>:unread</tt> - boolean - Changes the unread status of the threads.
|
74
|
+
# * <tt>:read</tt> - boolean - Inverse of "unread"
|
75
|
+
# * <tt>:last_read_at</tt> - optional string time - describes the last point
|
76
|
+
# that notifications were checked. Anything updated
|
77
|
+
# since this time will not be updated. Default: Now.
|
78
|
+
# Expected in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
|
79
|
+
# Example: “2012-10-09T23:39:01Z”.
|
80
|
+
#
|
81
|
+
# = Examples
|
82
|
+
# github = Github.new oauth_token: 'token'
|
83
|
+
# github.activity.notifications.mark read: true
|
84
|
+
#
|
85
|
+
# Mark notifications as read in a repository
|
86
|
+
#
|
87
|
+
# = Examples
|
88
|
+
# github.activity.notifications.mark user: 'user-name', repo: 'repo-name',
|
89
|
+
# read: true
|
90
|
+
#
|
91
|
+
# Mark a thread as read
|
92
|
+
#
|
93
|
+
# = Examples
|
94
|
+
# github.activity.notifications.mark thread_id: 'id', read: true
|
95
|
+
#
|
96
|
+
def mark(*args)
|
97
|
+
params = args.extract_options!
|
98
|
+
normalize! params
|
99
|
+
filter! %w[ unread read last_read_at user repo thread_id], params
|
100
|
+
|
101
|
+
if ( (user_name = params.delete("user")) &&
|
102
|
+
(repo_name = params.delete("repo")) )
|
103
|
+
|
104
|
+
put_request("/repos/#{user_name}/#{repo_name}/notifications", params)
|
105
|
+
elsif (thread_id = params.delete("thread_id"))
|
106
|
+
patch_request("/notifications/threads/#{thread_id}", params)
|
107
|
+
else
|
108
|
+
put_request("/notifications", params)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# Check to see if the current user is subscribed to a thread.
|
113
|
+
#
|
114
|
+
# = Examples
|
115
|
+
# github = Github.new oauth_token: 'token'
|
116
|
+
# github.activity.notifications.subscribed? 'thread-id'
|
117
|
+
#
|
118
|
+
def subscribed?(thread_id, params={})
|
119
|
+
assert_presence_of thread_id
|
120
|
+
normalize! params
|
121
|
+
get_request("/notifications/threads/#{thread_id}/subscription", params)
|
122
|
+
end
|
123
|
+
|
124
|
+
# Create a thread subscription
|
125
|
+
#
|
126
|
+
# This lets you subscribe to a thread, or ignore it. Subscribing to a thread
|
127
|
+
# is unnecessary if the user is already subscribed to the repository. Ignoring
|
128
|
+
# a thread will mute all future notifications (until you comment or get
|
129
|
+
# @mentioned).
|
130
|
+
#
|
131
|
+
# = Parameters
|
132
|
+
# * <tt>:subscribed</tt> - boolean - determines if notifications should be
|
133
|
+
# received from this thread.
|
134
|
+
# * <tt>:ignored</tt> - boolean - deterimines if all notifications should be
|
135
|
+
# blocked from this thread.
|
136
|
+
# = Examples
|
137
|
+
# github = Github.new oauth_token: 'token'
|
138
|
+
# github.activity.notifications.create 'thread-id',
|
139
|
+
# 'subscribed': true
|
140
|
+
# 'ignored': false
|
141
|
+
#
|
142
|
+
def create(thread_id, params={})
|
143
|
+
assert_presence_of thread_id
|
144
|
+
normalize! params
|
145
|
+
put_request("/notifications/threads/#{thread_id}/subscription", params)
|
146
|
+
end
|
147
|
+
|
148
|
+
# Delete a thread subscription
|
149
|
+
#
|
150
|
+
# = Examples
|
151
|
+
# github = Github.new oauth_token: 'token'
|
152
|
+
# github.activity.notifications.delete 'thread_id'
|
153
|
+
#
|
154
|
+
def delete(thread_id, params={})
|
155
|
+
assert_presence_of thread_id
|
156
|
+
normalize! params
|
157
|
+
delete_request("/notifications/threads/#{thread_id}/subscription", params)
|
158
|
+
end
|
159
|
+
alias :remove :delete
|
160
|
+
|
161
|
+
end # Activity::Notifications
|
162
|
+
end # Github
|