github_api 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|