octodoggy 4.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/CONTRIBUTING.md +22 -0
- data/LICENSE.md +20 -0
- data/README.md +714 -0
- data/Rakefile +22 -0
- data/lib/ext/sawyer/relation.rb +10 -0
- data/lib/octokit.rb +59 -0
- data/lib/octokit/arguments.rb +14 -0
- data/lib/octokit/authentication.rb +82 -0
- data/lib/octokit/client.rb +238 -0
- data/lib/octokit/client/authorizations.rb +244 -0
- data/lib/octokit/client/commit_comments.rb +95 -0
- data/lib/octokit/client/commits.rb +239 -0
- data/lib/octokit/client/contents.rb +162 -0
- data/lib/octokit/client/deployments.rb +62 -0
- data/lib/octokit/client/downloads.rb +50 -0
- data/lib/octokit/client/emojis.rb +18 -0
- data/lib/octokit/client/events.rb +151 -0
- data/lib/octokit/client/feeds.rb +33 -0
- data/lib/octokit/client/gists.rb +233 -0
- data/lib/octokit/client/gitignore.rb +43 -0
- data/lib/octokit/client/hooks.rb +297 -0
- data/lib/octokit/client/integrations.rb +77 -0
- data/lib/octokit/client/issues.rb +321 -0
- data/lib/octokit/client/labels.rb +156 -0
- data/lib/octokit/client/legacy_search.rb +42 -0
- data/lib/octokit/client/licenses.rb +45 -0
- data/lib/octokit/client/markdown.rb +27 -0
- data/lib/octokit/client/meta.rb +21 -0
- data/lib/octokit/client/milestones.rb +87 -0
- data/lib/octokit/client/notifications.rb +171 -0
- data/lib/octokit/client/objects.rb +141 -0
- data/lib/octokit/client/organizations.rb +768 -0
- data/lib/octokit/client/pages.rb +63 -0
- data/lib/octokit/client/projects.rb +314 -0
- data/lib/octokit/client/pub_sub_hubbub.rb +111 -0
- data/lib/octokit/client/pull_requests.rb +301 -0
- data/lib/octokit/client/rate_limit.rb +54 -0
- data/lib/octokit/client/reactions.rb +158 -0
- data/lib/octokit/client/refs.rb +118 -0
- data/lib/octokit/client/releases.rb +163 -0
- data/lib/octokit/client/repositories.rb +654 -0
- data/lib/octokit/client/repository_invitations.rb +103 -0
- data/lib/octokit/client/reviews.rb +174 -0
- data/lib/octokit/client/say.rb +19 -0
- data/lib/octokit/client/search.rb +76 -0
- data/lib/octokit/client/service_status.rb +38 -0
- data/lib/octokit/client/source_import.rb +161 -0
- data/lib/octokit/client/stats.rb +105 -0
- data/lib/octokit/client/statuses.rb +47 -0
- data/lib/octokit/client/traffic.rb +69 -0
- data/lib/octokit/client/users.rb +354 -0
- data/lib/octokit/configurable.rb +147 -0
- data/lib/octokit/connection.rb +199 -0
- data/lib/octokit/default.rb +166 -0
- data/lib/octokit/enterprise_admin_client.rb +40 -0
- data/lib/octokit/enterprise_admin_client/admin_stats.rb +120 -0
- data/lib/octokit/enterprise_admin_client/license.rb +18 -0
- data/lib/octokit/enterprise_admin_client/orgs.rb +27 -0
- data/lib/octokit/enterprise_admin_client/search_indexing.rb +83 -0
- data/lib/octokit/enterprise_admin_client/users.rb +128 -0
- data/lib/octokit/enterprise_management_console_client.rb +50 -0
- data/lib/octokit/enterprise_management_console_client/management_console.rb +176 -0
- data/lib/octokit/error.rb +286 -0
- data/lib/octokit/gist.rb +36 -0
- data/lib/octokit/middleware/follow_redirects.rb +131 -0
- data/lib/octokit/organization.rb +17 -0
- data/lib/octokit/preview.rb +38 -0
- data/lib/octokit/rate_limit.rb +33 -0
- data/lib/octokit/repo_arguments.rb +19 -0
- data/lib/octokit/repository.rb +93 -0
- data/lib/octokit/response/feed_parser.rb +21 -0
- data/lib/octokit/response/raise_error.rb +21 -0
- data/lib/octokit/user.rb +19 -0
- data/lib/octokit/version.rb +17 -0
- data/lib/octokit/warnable.rb +17 -0
- data/octokit.gemspec +22 -0
- metadata +160 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Deployments API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/repos/commits/deployments/
|
7
|
+
module Deployments
|
8
|
+
|
9
|
+
# List all deployments for a repository
|
10
|
+
#
|
11
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
12
|
+
# @return [Array<Sawyer::Resource>] A list of deployments
|
13
|
+
# @see https://developer.github.com/v3/repos/deployments/#list-deployments
|
14
|
+
def deployments(repo, options = {})
|
15
|
+
get("#{Repository.path repo}/deployments", options)
|
16
|
+
end
|
17
|
+
alias :list_deployments :deployments
|
18
|
+
|
19
|
+
# Create a deployment for a ref
|
20
|
+
#
|
21
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
22
|
+
# @param ref [String] The ref to deploy
|
23
|
+
# @option options [String] :task Used by the deployment system to allow different execution paths. Defaults to "deploy".
|
24
|
+
# @option options [String] :payload Meta info about the deployment
|
25
|
+
# @option options [Boolean] :auto_merge Optional parameter to merge the default branch into the requested deployment branch if necessary. Default: true
|
26
|
+
# @option options [Array<String>] :required_contexts Optional array of status contexts verified against commit status checks.
|
27
|
+
# @option options [String] :environment Optional name for the target deployment environment (e.g., production, staging, qa). Default: "production"
|
28
|
+
# @option options [String] :description Optional short description.
|
29
|
+
# @return [Sawyer::Resource] A deployment
|
30
|
+
# @see https://developer.github.com/v3/repos/deployments/#create-a-deployment
|
31
|
+
def create_deployment(repo, ref, options = {})
|
32
|
+
options[:ref] = ref
|
33
|
+
post("#{Repository.path repo}/deployments", options)
|
34
|
+
end
|
35
|
+
|
36
|
+
# List all statuses for a Deployment
|
37
|
+
#
|
38
|
+
# @param deployment_url [String] A URL for a deployment resource
|
39
|
+
# @return [Array<Sawyer::Resource>] A list of deployment statuses
|
40
|
+
# @see https://developer.github.com/v3/repos/deployments/#list-deployment-statuses
|
41
|
+
def deployment_statuses(deployment_url, options = {})
|
42
|
+
deployment = get(deployment_url, :accept => options[:accept])
|
43
|
+
get(deployment.rels[:statuses].href, options)
|
44
|
+
end
|
45
|
+
alias :list_deployment_statuses :deployment_statuses
|
46
|
+
|
47
|
+
# Create a deployment status for a Deployment
|
48
|
+
#
|
49
|
+
# @param deployment_url [String] A URL for a deployment resource
|
50
|
+
# @param state [String] The state: pending, success, failure, error
|
51
|
+
# @option options [String] :target_url The target URL to associate with this status. Default: ""
|
52
|
+
# @option options [String] :description A short description of the status. Maximum length of 140 characters. Default: ""
|
53
|
+
# @return [Sawyer::Resource] A deployment status
|
54
|
+
# @see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status
|
55
|
+
def create_deployment_status(deployment_url, state, options = {})
|
56
|
+
deployment = get(deployment_url, :accept => options[:accept])
|
57
|
+
options[:state] = state.to_s.downcase
|
58
|
+
post(deployment.rels[:statuses].href, options)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Repo Downloads API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/repos/downloads/
|
7
|
+
module Downloads
|
8
|
+
|
9
|
+
# List available downloads for a repository
|
10
|
+
#
|
11
|
+
# @param repo [Integer, String, Repository, Hash] A Github Repository
|
12
|
+
# @return [Array] A list of available downloads
|
13
|
+
# @deprecated As of December 11th, 2012: https://github.com/blog/1302-goodbye-uploads
|
14
|
+
# @see https://developer.github.com/v3/repos/downloads/#list-downloads-for-a-repository
|
15
|
+
# @example List all downloads for Github/Hubot
|
16
|
+
# Octokit.downloads("github/hubot")
|
17
|
+
def downloads(repo, options={})
|
18
|
+
paginate "#{Repository.path repo}/downloads", options
|
19
|
+
end
|
20
|
+
alias :list_downloads :downloads
|
21
|
+
|
22
|
+
# Get single download for a repository
|
23
|
+
#
|
24
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
25
|
+
# @param id [Integer] ID of the download
|
26
|
+
# @return [Sawyer::Resource] A single download from the repository
|
27
|
+
# @deprecated As of December 11th, 2012: https://github.com/blog/1302-goodbye-uploads
|
28
|
+
# @see https://developer.github.com/v3/repos/downloads/#get-a-single-download
|
29
|
+
# @example Get the "Robawt" download from Github/Hubot
|
30
|
+
# Octokit.download("github/hubot")
|
31
|
+
def download(repo, id, options={})
|
32
|
+
get "#{Repository.path repo}/downloads/#{id}", options
|
33
|
+
end
|
34
|
+
|
35
|
+
# Delete a single download for a repository
|
36
|
+
#
|
37
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
38
|
+
# @param id [Integer] ID of the download
|
39
|
+
# @deprecated As of December 11th, 2012: https://github.com/blog/1302-goodbye-uploads
|
40
|
+
# @see https://developer.github.com/v3/repos/downloads/#delete-a-download
|
41
|
+
# @return [Boolean] Status
|
42
|
+
# @example Get the "Robawt" download from Github/Hubot
|
43
|
+
# Octokit.delete_download("github/hubot", 1234)
|
44
|
+
def delete_download(repo, id, options = {})
|
45
|
+
boolean_from_response :delete, "#{Repository.path repo}/downloads/#{id}", options
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Emojis API
|
5
|
+
module Emojis
|
6
|
+
|
7
|
+
# List all emojis used on GitHub
|
8
|
+
#
|
9
|
+
# @return [Sawyer::Resource] A list of all emojis on GitHub
|
10
|
+
# @see https://developer.github.com/v3/emojis/#emojis
|
11
|
+
# @example List all emojis
|
12
|
+
# Octokit.emojis
|
13
|
+
def emojis(options = {})
|
14
|
+
get "emojis", options
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Method for the Events API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/activity/events/
|
7
|
+
# @see https://developer.github.com/v3/issues/events/
|
8
|
+
module Events
|
9
|
+
|
10
|
+
# List all public events for GitHub
|
11
|
+
#
|
12
|
+
# @return [Array<Sawyer::Resource>] A list of all public events from GitHub
|
13
|
+
# @see https://developer.github.com/v3/activity/events/#list-public-events
|
14
|
+
# @example List all pubilc events
|
15
|
+
# Octokit.public_events
|
16
|
+
def public_events(options = {})
|
17
|
+
paginate "events", options
|
18
|
+
end
|
19
|
+
|
20
|
+
# List all user events
|
21
|
+
#
|
22
|
+
# @param user [Integer, String] GitHub user login or id.
|
23
|
+
# @return [Array<Sawyer::Resource>] A list of all user events
|
24
|
+
# @see https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user
|
25
|
+
# @example List all user events
|
26
|
+
# Octokit.user_events("sferik")
|
27
|
+
def user_events(user, options = {})
|
28
|
+
paginate "#{User.path user}/events", options
|
29
|
+
end
|
30
|
+
|
31
|
+
# List public user events
|
32
|
+
#
|
33
|
+
# @param user [Integer, String] GitHub user login or id
|
34
|
+
# @return [Array<Sawyer::Resource>] A list of public user events
|
35
|
+
# @see https://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user
|
36
|
+
# @example List public user events
|
37
|
+
# Octokit.user_events("sferik")
|
38
|
+
def user_public_events(user, options = {})
|
39
|
+
paginate "#{User.path user}/events/public", options
|
40
|
+
end
|
41
|
+
|
42
|
+
# List events that a user has received
|
43
|
+
#
|
44
|
+
# @param user [Integer, String] GitHub user login or id
|
45
|
+
# @return [Array<Sawyer::Resource>] A list of all user received events
|
46
|
+
# @see https://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
|
47
|
+
# @example List all user received events
|
48
|
+
# Octokit.received_events("sferik")
|
49
|
+
def received_events(user, options = {})
|
50
|
+
paginate "#{User.path user}/received_events", options
|
51
|
+
end
|
52
|
+
|
53
|
+
# List public events a user has received
|
54
|
+
#
|
55
|
+
# @param user [Integer, String] GitHub user login or id
|
56
|
+
# @return [Array<Sawyer::Resource>] A list of public user received events
|
57
|
+
# @see https://developer.github.com/v3/activity/events/#list-public-events-that-a-user-has-received
|
58
|
+
# @example List public user received events
|
59
|
+
# Octokit.received_public_events("sferik")
|
60
|
+
def received_public_events(user, options = {})
|
61
|
+
paginate "#{User.path user}/received_events/public", options
|
62
|
+
end
|
63
|
+
|
64
|
+
# List events for a repository
|
65
|
+
#
|
66
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
67
|
+
# @return [Array<Sawyer::Resource>] A list of events for a repository
|
68
|
+
# @see https://developer.github.com/v3/activity/events/#list-repository-events
|
69
|
+
# @example List events for a repository
|
70
|
+
# Octokit.repository_events("sferik/rails_admin")
|
71
|
+
def repository_events(repo, options = {})
|
72
|
+
paginate "#{Repository.path repo}/events", options
|
73
|
+
end
|
74
|
+
|
75
|
+
# List public events for a repository's network
|
76
|
+
#
|
77
|
+
# @param repo [String, Repository, Hash] A GitHub repository
|
78
|
+
# @return [Array<Sawyer::Resource>] A list of events for a repository's network
|
79
|
+
# @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories
|
80
|
+
# @example List events for a repository's network
|
81
|
+
# Octokit.repository_network_events("sferik/rails_admin")
|
82
|
+
def repository_network_events(repo, options = {})
|
83
|
+
paginate "networks/#{Repository.new(repo)}/events", options
|
84
|
+
end
|
85
|
+
|
86
|
+
# List all events for an organization
|
87
|
+
#
|
88
|
+
# Requires authenticated client.
|
89
|
+
#
|
90
|
+
# @param org [String] Organization GitHub handle
|
91
|
+
# @return [Array<Sawyer::Resource>] List of all events from a GitHub organization
|
92
|
+
# @see https://developer.github.com/v3/activity/events/#list-events-for-an-organization
|
93
|
+
# @example List events for the lostisland organization
|
94
|
+
# @client.organization_events("lostisland")
|
95
|
+
def organization_events(org, options = {})
|
96
|
+
paginate "users/#{login}/events/orgs/#{org}", options
|
97
|
+
end
|
98
|
+
|
99
|
+
# List an organization's public events
|
100
|
+
#
|
101
|
+
# @param org [String, Integer] Organization GitHub login or id.
|
102
|
+
# @return [Array<Sawyer::Resource>] List of public events from a GitHub organization
|
103
|
+
# @see https://developer.github.com/v3/activity/events/#list-public-events-for-an-organization
|
104
|
+
# @example List public events for GitHub
|
105
|
+
# Octokit.organization_public_events("GitHub")
|
106
|
+
def organization_public_events(org, options = {})
|
107
|
+
paginate "#{Organization.path org}/events", options
|
108
|
+
end
|
109
|
+
|
110
|
+
# Get all Issue Events for a given Repository
|
111
|
+
#
|
112
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
113
|
+
#
|
114
|
+
# @return [Array<Sawyer::Resource>] Array of all Issue Events for this Repository
|
115
|
+
# @see https://developer.github.com/v3/issues/events/#list-events-for-a-repository
|
116
|
+
# @see https://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
|
117
|
+
# @example Get all Issue Events for Octokit
|
118
|
+
# Octokit.repository_issue_events("octokit/octokit.rb")
|
119
|
+
def repository_issue_events(repo, options = {})
|
120
|
+
paginate "#{Repository.path repo}/issues/events", options
|
121
|
+
end
|
122
|
+
alias :repo_issue_events :repository_issue_events
|
123
|
+
|
124
|
+
# List events for an Issue
|
125
|
+
#
|
126
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
127
|
+
# @param number [Integer] Issue number
|
128
|
+
#
|
129
|
+
# @return [Array<Sawyer::Resource>] Array of events for that issue
|
130
|
+
# @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue
|
131
|
+
# @example List all issues events for issue #38 on octokit/octokit.rb
|
132
|
+
# Octokit.issue_events("octokit/octokit.rb", 38)
|
133
|
+
def issue_events(repo, number, options = {})
|
134
|
+
paginate "#{Repository.path repo}/issues/#{number}/events", options
|
135
|
+
end
|
136
|
+
|
137
|
+
# Get information on a single Issue Event
|
138
|
+
#
|
139
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
140
|
+
# @param number [Integer] Event number
|
141
|
+
#
|
142
|
+
# @return [Sawyer::Resource] A single Event for an Issue
|
143
|
+
# @see https://developer.github.com/v3/issues/events/#get-a-single-event
|
144
|
+
# @example Get Event information for ID 3094334 (a pull request was closed)
|
145
|
+
# Octokit.issue_event("octokit/octokit.rb", 3094334)
|
146
|
+
def issue_event(repo, number, options = {})
|
147
|
+
paginate "#{Repository.path repo}/issues/events/#{number}", options
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Feeds API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/activity/feeds/
|
7
|
+
module Feeds
|
8
|
+
|
9
|
+
# List Feeds
|
10
|
+
#
|
11
|
+
# The feeds returned depend on authentication, see the GitHub API docs
|
12
|
+
# for more information.
|
13
|
+
#
|
14
|
+
# @return [Array<Sawyer::Resource>] list of feeds
|
15
|
+
# @see https://developer.github.com/v3/activity/feeds/#list-feeds
|
16
|
+
def feeds
|
17
|
+
get "feeds"
|
18
|
+
end
|
19
|
+
|
20
|
+
# Get a Feed by name
|
21
|
+
#
|
22
|
+
# @param name [Symbol, String] Name of feed to retrieve.
|
23
|
+
# @return [Feed] Parsed feed in the format returned by the configured
|
24
|
+
# parser.
|
25
|
+
def feed(name, options = {})
|
26
|
+
if rel = feeds._links[name]
|
27
|
+
get rel.href, :accept => rel.type, :options => options
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,233 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Gists API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/gists/
|
7
|
+
module Gists
|
8
|
+
|
9
|
+
# List gists for a user or all public gists
|
10
|
+
#
|
11
|
+
# @param user [String] An optional user to filter listing
|
12
|
+
# @return [Array<Sawyer::Resource>] A list of gists
|
13
|
+
# @example Fetch all gists for defunkt
|
14
|
+
# Octokit.gists('defunkt')
|
15
|
+
# @example Fetch all public gists
|
16
|
+
# Octokit.gists
|
17
|
+
# @see https://developer.github.com/v3/gists/#list-gists
|
18
|
+
def gists(user=nil, options = {})
|
19
|
+
if user.nil?
|
20
|
+
paginate 'gists', options
|
21
|
+
else
|
22
|
+
paginate "#{User.path user}/gists", options
|
23
|
+
end
|
24
|
+
end
|
25
|
+
alias :list_gists :gists
|
26
|
+
|
27
|
+
# List public gists
|
28
|
+
#
|
29
|
+
# @return [Array<Sawyer::Resource>] A list of gists
|
30
|
+
# @example Fetch all public gists
|
31
|
+
# Octokit.public_gists
|
32
|
+
# @see https://developer.github.com/v3/gists/#list-gists
|
33
|
+
def public_gists(options = {})
|
34
|
+
paginate 'gists/public', options
|
35
|
+
end
|
36
|
+
|
37
|
+
# List the authenticated user’s starred gists
|
38
|
+
#
|
39
|
+
# @return [Array<Sawyer::Resource>] A list of gists
|
40
|
+
# @see https://developer.github.com/v3/gists/#list-gists
|
41
|
+
def starred_gists(options = {})
|
42
|
+
paginate 'gists/starred', options
|
43
|
+
end
|
44
|
+
|
45
|
+
# Get a single gist
|
46
|
+
#
|
47
|
+
# @param gist [String] ID of gist to fetch
|
48
|
+
# @option options [String] :sha Specific gist revision SHA
|
49
|
+
# @return [Sawyer::Resource] Gist information
|
50
|
+
# @see https://developer.github.com/v3/gists/#get-a-single-gist
|
51
|
+
# @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist
|
52
|
+
def gist(gist, options = {})
|
53
|
+
if sha = options.delete(:sha)
|
54
|
+
get "gists/#{Gist.new(gist)}/#{sha}", options
|
55
|
+
else
|
56
|
+
get "gists/#{Gist.new(gist)}", options
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Create a gist
|
61
|
+
#
|
62
|
+
# @param options [Hash] Gist information.
|
63
|
+
# @option options [String] :description
|
64
|
+
# @option options [Boolean] :public Sets gist visibility
|
65
|
+
# @option options [Array<Hash>] :files Files that make up this gist. Keys
|
66
|
+
# should be the filename, the value a Hash with a :content key with text
|
67
|
+
# content of the Gist.
|
68
|
+
# @return [Sawyer::Resource] Newly created gist info
|
69
|
+
# @see https://developer.github.com/v3/gists/#create-a-gist
|
70
|
+
def create_gist(options = {})
|
71
|
+
post 'gists', options
|
72
|
+
end
|
73
|
+
|
74
|
+
# Edit a gist
|
75
|
+
#
|
76
|
+
# @param options [Hash] Gist information.
|
77
|
+
# @option options [String] :description
|
78
|
+
# @option options [Hash] :files Files that make up this gist. Keys
|
79
|
+
# should be the filename, the value a Hash with a :content key with text
|
80
|
+
# content of the Gist.
|
81
|
+
#
|
82
|
+
# NOTE: All files from the previous version of the
|
83
|
+
# gist are carried over by default if not included in the hash. Deletes
|
84
|
+
# can be performed by including the filename with a null hash.
|
85
|
+
# @return
|
86
|
+
# [Sawyer::Resource] Newly created gist info
|
87
|
+
# @see https://developer.github.com/v3/gists/#edit-a-gist
|
88
|
+
# @example Update a gist
|
89
|
+
# @client.edit_gist('some_id', {
|
90
|
+
# :files => {"boo.md" => {"content" => "updated stuff"}}
|
91
|
+
# })
|
92
|
+
def edit_gist(gist, options = {})
|
93
|
+
patch "gists/#{Gist.new(gist)}", options
|
94
|
+
end
|
95
|
+
|
96
|
+
# List gist commits
|
97
|
+
#
|
98
|
+
# @param gist [String] Gist ID
|
99
|
+
# @return [Array] List of commits to the gist
|
100
|
+
# @see https://developer.github.com/v3/gists/#list-gist-commits
|
101
|
+
# @example List commits for a gist
|
102
|
+
# @client.gist_commits('some_id')
|
103
|
+
def gist_commits(gist, options = {})
|
104
|
+
paginate "gists/#{Gist.new(gist)}/commits", options
|
105
|
+
end
|
106
|
+
|
107
|
+
#
|
108
|
+
# Star a gist
|
109
|
+
#
|
110
|
+
# @param gist [String] Gist ID
|
111
|
+
# @return [Boolean] Indicates if gist is starred successfully
|
112
|
+
# @see https://developer.github.com/v3/gists/#star-a-gist
|
113
|
+
def star_gist(gist, options = {})
|
114
|
+
boolean_from_response :put, "gists/#{Gist.new(gist)}/star", options
|
115
|
+
end
|
116
|
+
|
117
|
+
# Unstar a gist
|
118
|
+
#
|
119
|
+
# @param gist [String] Gist ID
|
120
|
+
# @return [Boolean] Indicates if gist is unstarred successfully
|
121
|
+
# @see https://developer.github.com/v3/gists/#unstar-a-gist
|
122
|
+
def unstar_gist(gist, options = {})
|
123
|
+
boolean_from_response :delete, "gists/#{Gist.new(gist)}/star", options
|
124
|
+
end
|
125
|
+
|
126
|
+
# Check if a gist is starred
|
127
|
+
#
|
128
|
+
# @param gist [String] Gist ID
|
129
|
+
# @return [Boolean] Indicates if gist is starred
|
130
|
+
# @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred
|
131
|
+
def gist_starred?(gist, options = {})
|
132
|
+
boolean_from_response :get, "gists/#{Gist.new(gist)}/star", options
|
133
|
+
end
|
134
|
+
|
135
|
+
# Fork a gist
|
136
|
+
#
|
137
|
+
# @param gist [String] Gist ID
|
138
|
+
# @return [Sawyer::Resource] Data for the new gist
|
139
|
+
# @see https://developer.github.com/v3/gists/#fork-a-gist
|
140
|
+
def fork_gist(gist, options = {})
|
141
|
+
post "gists/#{Gist.new(gist)}/forks", options
|
142
|
+
end
|
143
|
+
|
144
|
+
# List gist forks
|
145
|
+
#
|
146
|
+
# @param gist [String] Gist ID
|
147
|
+
# @return [Array] List of gist forks
|
148
|
+
# @see https://developer.github.com/v3/gists/#list-gist-forks
|
149
|
+
# @example List gist forks
|
150
|
+
# @client.gist_forks('some-id')
|
151
|
+
def gist_forks(gist, options = {})
|
152
|
+
paginate "gists/#{Gist.new(gist)}/forks", options
|
153
|
+
end
|
154
|
+
|
155
|
+
# Delete a gist
|
156
|
+
#
|
157
|
+
# @param gist [String] Gist ID
|
158
|
+
# @return [Boolean] Indicating success of deletion
|
159
|
+
# @see https://developer.github.com/v3/gists/#delete-a-gist
|
160
|
+
def delete_gist(gist, options = {})
|
161
|
+
boolean_from_response :delete, "gists/#{Gist.new(gist)}", options
|
162
|
+
end
|
163
|
+
|
164
|
+
# List gist comments
|
165
|
+
#
|
166
|
+
# @param gist_id [String] Gist Id.
|
167
|
+
# @return [Array<Sawyer::Resource>] Array of hashes representing comments.
|
168
|
+
# @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist
|
169
|
+
# @example
|
170
|
+
# Octokit.gist_comments('3528ae645')
|
171
|
+
def gist_comments(gist_id, options = {})
|
172
|
+
paginate "gists/#{gist_id}/comments", options
|
173
|
+
end
|
174
|
+
|
175
|
+
# Get gist comment
|
176
|
+
#
|
177
|
+
# @param gist_id [String] Id of the gist.
|
178
|
+
# @param gist_comment_id [Integer] Id of the gist comment.
|
179
|
+
# @return [Sawyer::Resource] Hash representing gist comment.
|
180
|
+
# @see https://developer.github.com/v3/gists/comments/#get-a-single-comment
|
181
|
+
# @example
|
182
|
+
# Octokit.gist_comment('208sdaz3', 1451398)
|
183
|
+
def gist_comment(gist_id, gist_comment_id, options = {})
|
184
|
+
get "gists/#{gist_id}/comments/#{gist_comment_id}", options
|
185
|
+
end
|
186
|
+
|
187
|
+
# Create gist comment
|
188
|
+
#
|
189
|
+
# Requires authenticated client.
|
190
|
+
#
|
191
|
+
# @param gist_id [String] Id of the gist.
|
192
|
+
# @param comment [String] Comment contents.
|
193
|
+
# @return [Sawyer::Resource] Hash representing the new comment.
|
194
|
+
# @see https://developer.github.com/v3/gists/comments/#create-a-comment
|
195
|
+
# @example
|
196
|
+
# @client.create_gist_comment('3528645', 'This is very helpful.')
|
197
|
+
def create_gist_comment(gist_id, comment, options = {})
|
198
|
+
options.merge!({:body => comment})
|
199
|
+
post "gists/#{gist_id}/comments", options
|
200
|
+
end
|
201
|
+
|
202
|
+
# Update gist comment
|
203
|
+
#
|
204
|
+
# Requires authenticated client
|
205
|
+
#
|
206
|
+
# @param gist_id [String] Id of the gist.
|
207
|
+
# @param gist_comment_id [Integer] Id of the gist comment to update.
|
208
|
+
# @param comment [String] Updated comment contents.
|
209
|
+
# @return [Sawyer::Resource] Hash representing the updated comment.
|
210
|
+
# @see https://developer.github.com/v3/gists/comments/#edit-a-comment
|
211
|
+
# @example
|
212
|
+
# @client.update_gist_comment('208sdaz3', '3528645', ':heart:')
|
213
|
+
def update_gist_comment(gist_id, gist_comment_id, comment, options = {})
|
214
|
+
options.merge!({:body => comment})
|
215
|
+
patch "gists/#{gist_id}/comments/#{gist_comment_id}", options
|
216
|
+
end
|
217
|
+
|
218
|
+
# Delete gist comment
|
219
|
+
#
|
220
|
+
# Requires authenticated client.
|
221
|
+
#
|
222
|
+
# @param gist_id [String] Id of the gist.
|
223
|
+
# @param gist_comment_id [Integer] Id of the gist comment to delete.
|
224
|
+
# @return [Boolean] True if comment deleted, false otherwise.
|
225
|
+
# @see https://developer.github.com/v3/gists/comments/#delete-a-comment
|
226
|
+
# @example
|
227
|
+
# @client.delete_gist_comment('208sdaz3', '586399')
|
228
|
+
def delete_gist_comment(gist_id, gist_comment_id, options = {})
|
229
|
+
boolean_from_response(:delete, "gists/#{gist_id}/comments/#{gist_comment_id}", options)
|
230
|
+
end
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|