octokit 4.18.0 → 4.22.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
  SHA256:
3
- metadata.gz: 6769ee0502378ac696ca5c6fe2cf854eb67ad86affebf92342a6f30997d3f181
4
- data.tar.gz: 9a189f3ee1bdd7164ce1a189d62f014e0440a648ac40dfdc8e7bf8c57af4d5fa
3
+ metadata.gz: 072c9ec7fa2439cc75655ff5c925efeedc19fe386eae30a30be712524802b3ad
4
+ data.tar.gz: 177806faf28428ecd942d0159c268cae122e2ec7a88d4bc3e0b34e41a2b3409c
5
5
  SHA512:
6
- metadata.gz: 61f2200517ff1f3f805926d3ce20b3155429e77d6e35ef89ebc0b1e2a826064e658bcc9f32c368cd89618677fa9c1b14d65668b6083ebba56ab36375e605a035
7
- data.tar.gz: 8bf0ef345c8f3850196d8a2695b5ae9a3f2d90a7c63e9e02944c2876bf381613bb2fd0ecd5c3b11a4aaba75e22d5345269d1ad324c777224b4c65ec4f27eaf4a
6
+ metadata.gz: 7a087ec2c360f33db0cd6526ba76ae8762d57885a24577d36ada1baf1cf3019e93beeaa70455bb6cf08f64d9328e84112043d202526b42e94f8cb1bfb96faada
7
+ data.tar.gz: 8425341fe9135936b066de860c2722ad77b8a3c3ce2d8fe478a5420a3c911fc56a419ce4808a290f55199074bab94953500d3cdbc7345f9d9137d66cccb9de39
data/CONTRIBUTING.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ## Submitting a Pull Request
2
2
 
3
3
  0. Read our [Code of Conduct](CODE_OF_CONDUCT.md).
4
- 1. Check out Hacking on Octokit in the README guide for
5
- bootstrapping the project for local development.
4
+ 1. Check out [Hacking on Octokit](README.md#hacking-on-octokitrb) in the
5
+ README for bootstrapping the project for local development.
6
6
  2. [Fork the repository.][fork]
7
7
  3. [Create a topic branch.][branch]
8
8
  4. Add specs for your unimplemented feature or bug fix.
@@ -18,8 +18,6 @@
18
18
  add "[ci skip]" to your commit message to avoid needless CI builds.
19
19
  12. [Submit a pull request.][pr]
20
20
 
21
- Please abide by
22
-
23
21
  [fork]: https://help.github.com/articles/fork-a-repo
24
22
  [branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
25
23
  [pr]: https://help.github.com/articles/using-pull-requests
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ruby toolkit for the GitHub API.
4
4
 
5
- ![logo](http://cl.ly/image/3Y013H0A2z3z/gundam-ruby.png)
5
+ ![logo](https://docs.github.com/assets/images/gundamcat.png)
6
6
 
7
7
  Upgrading? Check the [Upgrade Guide](#upgrading-guide) before bumping to a new
8
8
  [major version][semver].
@@ -41,7 +41,7 @@ Upgrading? Check the [Upgrade Guide](#upgrading-guide) before bumping to a new
41
41
  1. [Debugging](#debugging)
42
42
  2. [Caching](#caching)
43
43
  14. [Hacking on Octokit.rb](#hacking-on-octokitrb)
44
- 1. [Code of Conduction](#code_of_conduct)
44
+ 1. [Code of Conduct](#code-of-conduct)
45
45
  2. [Running and writing new tests](#running-and-writing-new-tests)
46
46
  15. [Supported Ruby Versions](#supported-ruby-versions)
47
47
  16. [Versioning](#versioning)
@@ -86,10 +86,10 @@ Access the library in Ruby:
86
86
 
87
87
  ```ruby
88
88
  # Provide authentication credentials
89
- client = Octokit::Client.new(:login => 'defunkt', :password => 'c0d3b4ssssss!')
89
+ client = Octokit::Client.new(:access_token => 'personal_access_token')
90
90
 
91
- # Set access_token instead of login and password if you use personal access token
92
- # client = Octokit::Client.new(:access_token => '[personal_access_token]!')
91
+ # You can still use the username/password syntax by replacing the password value with your PAT.
92
+ # client = Octokit::Client.new(:login => 'defunkt', :password => 'personal_access_token')
93
93
 
94
94
  # Fetch the current user
95
95
  client.user
@@ -323,7 +323,7 @@ custom pattern for traversing large lists.
323
323
 
324
324
  ## Working with GitHub Enterprise
325
325
 
326
- With a bit of setup, you can also use Octokit with your Github Enterprise instance.
326
+ With a bit of setup, you can also use Octokit with your GitHub Enterprise instance.
327
327
 
328
328
  ### Interacting with the GitHub.com APIs in GitHub Enterprise
329
329
 
@@ -584,7 +584,9 @@ stack = Faraday::RackBuilder.new do |builder|
584
584
  builder.use Octokit::Middleware::FollowRedirects
585
585
  builder.use Octokit::Response::RaiseError
586
586
  builder.use Octokit::Response::FeedParser
587
- builder.response :logger
587
+ builder.response :logger do |logger|
588
+ logger.filter(/(Authorization: "(token|Bearer) )(\w+)/, '\1[REMOVED]')
589
+ end
588
590
  builder.adapter Faraday.default_adapter
589
591
  end
590
592
  Octokit.middleware = stack
@@ -651,7 +653,7 @@ to run a Ruby console to poke on Octokit, you can crank one up with:
651
653
 
652
654
  script/console
653
655
 
654
- Using the scripts in `./scripts` instead of `bundle exec rspec`, `bundle
656
+ Using the scripts in `./script` instead of `bundle exec rspec`, `bundle
655
657
  console`, etc. ensures your dependencies are up-to-date.
656
658
 
657
659
  ### Code of Conduct
@@ -713,16 +715,12 @@ when writing new specs.
713
715
 
714
716
  ## Supported Ruby Versions
715
717
 
716
- This library aims to support and is [tested against][travis] the following Ruby
718
+ This library aims to support and is [tested against][actions] the following Ruby
717
719
  implementations:
718
720
 
719
- * Ruby 2.0
720
- * Ruby 2.1
721
- * Ruby 2.2
722
- * Ruby 2.3
723
- * Ruby 2.4
724
721
  * Ruby 2.5
725
722
  * Ruby 2.6
723
+ * Ruby 2.7
726
724
 
727
725
  If something doesn't work on one of these Ruby versions, it's a bug.
728
726
 
@@ -737,7 +735,7 @@ implementation, you will be responsible for providing patches in a timely
737
735
  fashion. If critical issues for a particular implementation exist at the time
738
736
  of a major release, support for that Ruby version may be dropped.
739
737
 
740
- [travis]: https://travis-ci.org/octokit/octokit.rb
738
+ [actions]: https://github.com/octokit/octokit.rb/actions
741
739
 
742
740
  ## Versioning
743
741
 
@@ -45,7 +45,7 @@ module Octokit
45
45
  # @see https://developer.github.com/v3/#unauthenticated-rate-limited-requests
46
46
  # @return [Boolean]
47
47
  def application_authenticated?
48
- @client_id && @client_secret
48
+ !!(@client_id && @client_secret)
49
49
  end
50
50
 
51
51
  private
@@ -0,0 +1,58 @@
1
+ module Octokit
2
+ class Client
3
+
4
+ # Methods for the Actions Secrets API
5
+ #
6
+ # @see https://developer.github.com/v3/actions/secrets/
7
+ module ActionsSecrets
8
+
9
+ # Get public key for secrets encryption
10
+ #
11
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
12
+ # @return [Hash] key_id and key
13
+ # @see https://developer.github.com/v3/actions/secrets/#get-your-public-key
14
+ def get_public_key(repo)
15
+ get "#{Repository.path repo}/actions/secrets/public-key"
16
+ end
17
+
18
+
19
+ # List secrets
20
+ #
21
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
22
+ # @return [Hash] total_count and list of secrets (each item is hash with name, created_at and updated_at)
23
+ # @see https://developer.github.com/v3/actions/secrets/#list-secrets-for-a-repository
24
+ def list_secrets(repo)
25
+ paginate "#{Repository.path repo}/actions/secrets"
26
+ end
27
+
28
+ # Get a secret
29
+ #
30
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
31
+ # @param name [String] Name of secret
32
+ # @return [Hash] name, created_at and updated_at
33
+ # @see https://developer.github.com/v3/actions/secrets/#get-a-secret
34
+ def get_secret(repo, name)
35
+ get "#{Repository.path repo}/actions/secrets/#{name}"
36
+ end
37
+
38
+ # Create or update secrets
39
+ #
40
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
41
+ # @param name [String] Name of secret
42
+ # @param options [Hash] encrypted_value and key_id
43
+ # @see https://developer.github.com/v3/actions/secrets/#create-or-update-a-secret-for-a-repository
44
+ def create_or_update_secret(repo, name, options)
45
+ put "#{Repository.path repo}/actions/secrets/#{name}", options
46
+ end
47
+
48
+ # Delete a secret
49
+ #
50
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
51
+ # @param name [String] Name of secret
52
+ # @see https://developer.github.com/v3/actions/secrets/#delete-a-secret-from-a-repository
53
+ def delete_secret(repo, name)
54
+ boolean_from_response :delete, "#{Repository.path repo}/actions/secrets/#{name}"
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,105 @@
1
+ module Octokit
2
+ class Client
3
+ module ActionsWorkflowRuns
4
+ # List all runs for a repository workflow
5
+ #
6
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
7
+ # @param workflow [Integer, String] Id or file name of the workflow
8
+ # @option options [String] :actor Optional filtering by a user
9
+ # @option options [String] :branch Optional filtering by a branch
10
+ # @option options [String] :event Optional filtering by the event type
11
+ # @option options [String] :status Optional filtering by a status or conclusion
12
+ #
13
+ # @return [Sawyer::Resource] the total count and an array of workflows
14
+ # @see https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs
15
+ def workflow_runs(repo, workflow, options = {})
16
+ paginate "#{Repository.path repo}/actions/workflows/#{workflow}/runs", options
17
+ end
18
+ alias list_workflow_runs workflow_runs
19
+
20
+ # List all workflow runs for a repository
21
+ #
22
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
23
+ # @option options [String] :actor Optional filtering by the login of a user
24
+ # @option options [String] :branch Optional filtering by a branch
25
+ # @option options [String] :event Optional filtering by the event type (e.g. push, pull_request, issue)
26
+ # @option options [String] :status Optional filtering by a status or conclusion (e.g. success, completed...)
27
+ #
28
+ # @return [Sawyer::Resource] the total count and an array of workflows
29
+ # @see https://developer.github.com/v3/actions/workflow-runs/#list-repository-workflow-runs
30
+ def repository_workflow_runs(repo, options = {})
31
+ paginate "#{Repository.path repo}/actions/runs", options
32
+ end
33
+ alias list_repository_workflow_runs repository_workflow_runs
34
+
35
+ # Get a workflow run
36
+ #
37
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
38
+ # @param id [Integer] Id of a workflow run
39
+ #
40
+ # @return [Sawyer::Resource] Run information
41
+ # @see https://developer.github.com/v3/actions/workflow-runs/#get-a-workflow-run
42
+ def workflow_run(repo, id, options = {})
43
+ get "#{Repository.path repo}/actions/runs/#{id}", options
44
+ end
45
+
46
+ # Re-runs a workflow run
47
+ #
48
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
49
+ # @param id [Integer] Id of a workflow run
50
+ #
51
+ # @return [Boolean] Returns true if the re-run request was accepted
52
+ # @see https://developer.github.com/v3/actions/workflow-runs/#re-run-a-workflow
53
+ def rerun_workflow_run(repo, id, options = {})
54
+ boolean_from_response :post, "#{Repository.path repo}/actions/runs/#{id}/rerun", options
55
+ end
56
+
57
+ # Cancels a workflow run
58
+ #
59
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
60
+ # @param id [Integer] Id of a workflow run
61
+ #
62
+ # @return [Boolean] Returns true if the cancellation was accepted
63
+ # @see https://developer.github.com/v3/actions/workflow-runs/#cancel-a-workflow-run
64
+ def cancel_workflow_run(repo, id, options = {})
65
+ boolean_from_response :post, "#{Repository.path repo}/actions/runs/#{id}/cancel", options
66
+ end
67
+
68
+ # Deletes a workflow run
69
+ #
70
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
71
+ # @param id [Integer] Id of a workflow run
72
+ #
73
+ # @return [Boolean] Returns true if the run is deleted
74
+ # @see https://docs.github.com/en/rest/reference/actions#delete-a-workflow-run
75
+ def delete_workflow_run(repo, id, options = {})
76
+ boolean_from_response :delete, "#{Repository.path repo}/actions/runs/#{id}", options
77
+ end
78
+
79
+ # Get a download url for archived log files of a workflow run
80
+ #
81
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
82
+ # @param id [Integer] Id of a workflow run
83
+ #
84
+ # @return [String] URL to the archived log files of the run
85
+ # @see https://developer.github.com/v3/actions/workflow-runs/#download-workflow-run-logs
86
+ def workflow_run_logs(repo, id, options = {})
87
+ url = "#{Repository.path repo}/actions/runs/#{id}/logs"
88
+
89
+ response = client_without_redirects.head(url, options)
90
+ response.headers['Location']
91
+ end
92
+
93
+ # Delets all log files of a workflow run
94
+ #
95
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
96
+ # @param id [Integer] Id of a workflow run
97
+ #
98
+ # @return [Boolean] Returns true if the logs are deleted
99
+ # @see https://developer.github.com/v3/actions/workflow-runs/#delete-workflow-run-logs
100
+ def delete_workflow_run_logs(repo, id, options = {})
101
+ boolean_from_response :delete, "#{Repository.path repo}/actions/runs/#{id}/logs", options
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,43 @@
1
+ module Octokit
2
+ class Client
3
+ # Methods for the Actions Workflows API
4
+ #
5
+ # @see https://developer.github.com/v3/actions/workflows
6
+ module ActionsWorkflows
7
+
8
+ # Get the workflows in a repository
9
+ #
10
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
11
+ #
12
+ # @return [Sawyer::Resource] the total count and an array of workflows
13
+ # @see https://developer.github.com/v3/actions/workflows/#list-repository-workflows
14
+ def workflows(repo, options = {})
15
+ paginate "#{Repository.path repo}/actions/workflows", options
16
+ end
17
+ alias list_workflows workflows
18
+
19
+ # Get single workflow in a repository
20
+ #
21
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
22
+ # @param id [Integer, String] Id or file name of the workflow
23
+ #
24
+ # @return [Sawyer::Resource] A single workflow
25
+ # @see https://developer.github.com/v3/actions/workflows/#get-a-workflow
26
+ def workflow(repo, id, options = {})
27
+ get "#{Repository.path repo}/actions/workflows/#{id}", options
28
+ end
29
+
30
+ # Create a workflow dispatch event
31
+ #
32
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
33
+ # @param id [Integer, String] Id or file name of the workflow
34
+ # @param ref [String] A SHA, branch name, or tag name
35
+ #
36
+ # @return [Boolean] True if event was dispatched, false otherwise
37
+ # @see https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event
38
+ def workflow_dispatch(repo, id, ref, options = {})
39
+ boolean_from_response :post, "#{Repository.path repo}/actions/workflows/#{id}/dispatches", options.merge({ ref: ref })
40
+ end
41
+ end
42
+ end
43
+ end
@@ -4,6 +4,17 @@ module Octokit
4
4
  # Methods for the Apps API
5
5
  module Apps
6
6
 
7
+ # Get the authenticated App
8
+ #
9
+ # @param options [Hash] A customizable set of options
10
+ #
11
+ # @see https://developer.github.com/v3/apps/#get-the-authenticated-app
12
+ #
13
+ # @return [Sawyer::Resource] App information
14
+ def app(options = {})
15
+ get "app", options
16
+ end
17
+
7
18
  # Find all installations that belong to an App
8
19
  #
9
20
  # @param options [Hash] A customizable set of options
@@ -12,8 +23,7 @@ module Octokit
12
23
  #
13
24
  # @return [Array<Sawyer::Resource>] the total_count and an array of installations
14
25
  def find_app_installations(options = {})
15
- opts = ensure_api_media_type(:integrations, options)
16
- paginate "app/installations", opts
26
+ paginate "app/installations", options
17
27
  end
18
28
  alias find_installations find_app_installations
19
29
 
@@ -35,8 +45,7 @@ module Octokit
35
45
  #
36
46
  # @return [Sawyer::Resource] the total_count and an array of installations
37
47
  def find_user_installations(options = {})
38
- opts = ensure_api_media_type(:integrations, options)
39
- paginate("user/installations", opts) do |data, last_response|
48
+ paginate("user/installations", options) do |data, last_response|
40
49
  data.installations.concat last_response.data.installations
41
50
  end
42
51
  end
@@ -49,8 +58,7 @@ module Octokit
49
58
  #
50
59
  # @return [Sawyer::Resource] Installation information
51
60
  def installation(id, options = {})
52
- opts = ensure_api_media_type(:integrations, options)
53
- get "app/installations/#{id}", opts
61
+ get "app/installations/#{id}", options
54
62
  end
55
63
 
56
64
  # Create a new installation token
@@ -62,8 +70,7 @@ module Octokit
62
70
  #
63
71
  # @return [<Sawyer::Resource>] An installation token
64
72
  def create_app_installation_access_token(installation, options = {})
65
- opts = ensure_api_media_type(:integrations, options)
66
- post "app/installations/#{installation}/access_tokens", opts
73
+ post "app/installations/#{installation}/access_tokens", options
67
74
  end
68
75
  alias create_installation_access_token create_app_installation_access_token
69
76
 
@@ -86,8 +93,7 @@ module Octokit
86
93
  #
87
94
  # @return [Sawyer::Resource] Installation information
88
95
  def find_organization_installation(organization, options = {})
89
- opts = ensure_api_media_type(:integrations, options)
90
- get "#{Organization.path(organization)}/installation", opts
96
+ get "#{Organization.path(organization)}/installation", options
91
97
  end
92
98
 
93
99
  # Enables an app to find the repository's installation information.
@@ -99,8 +105,7 @@ module Octokit
99
105
  #
100
106
  # @return [Sawyer::Resource] Installation information
101
107
  def find_repository_installation(repo, options = {})
102
- opts = ensure_api_media_type(:integrations, options)
103
- get "#{Repository.path(repo)}/installation", opts
108
+ get "#{Repository.path(repo)}/installation", options
104
109
  end
105
110
 
106
111
  # Enables an app to find the user's installation information.
@@ -112,8 +117,7 @@ module Octokit
112
117
  #
113
118
  # @return [Sawyer::Resource] Installation information
114
119
  def find_user_installation(user, options = {})
115
- opts = ensure_api_media_type(:integrations, options)
116
- get "#{User.path(user)}/installation", opts
120
+ get "#{User.path(user)}/installation", options
117
121
  end
118
122
 
119
123
  # List repositories that are accessible to the authenticated installation
@@ -124,8 +128,7 @@ module Octokit
124
128
  #
125
129
  # @return [Sawyer::Resource] the total_count and an array of repositories
126
130
  def list_app_installation_repositories(options = {})
127
- opts = ensure_api_media_type(:integrations, options)
128
- paginate("installation/repositories", opts) do |data, last_response|
131
+ paginate("installation/repositories", options) do |data, last_response|
129
132
  data.repositories.concat last_response.data.repositories
130
133
  end
131
134
  end
@@ -151,8 +154,7 @@ module Octokit
151
154
  #
152
155
  # @return [Boolean] Success
153
156
  def add_repository_to_app_installation(installation, repo, options = {})
154
- opts = ensure_api_media_type(:integrations, options)
155
- boolean_from_response :put, "user/installations/#{installation}/repositories/#{repo}", opts
157
+ boolean_from_response :put, "user/installations/#{installation}/repositories/#{repo}", options
156
158
  end
157
159
  alias add_repo_to_installation add_repository_to_app_installation
158
160
 
@@ -176,8 +178,7 @@ module Octokit
176
178
  #
177
179
  # @return [Boolean] Success
178
180
  def remove_repository_from_app_installation(installation, repo, options = {})
179
- opts = ensure_api_media_type(:integrations, options)
180
- boolean_from_response :delete, "user/installations/#{installation}/repositories/#{repo}", opts
181
+ boolean_from_response :delete, "user/installations/#{installation}/repositories/#{repo}", options
181
182
  end
182
183
  alias remove_repo_from_installation remove_repository_from_app_installation
183
184
 
@@ -200,8 +201,7 @@ module Octokit
200
201
  #
201
202
  # @return [Sawyer::Resource] the total_count and an array of repositories
202
203
  def find_installation_repositories_for_user(installation, options = {})
203
- opts = ensure_api_media_type(:integrations, options)
204
- paginate("user/installations/#{installation}/repositories", opts) do |data, last_response|
204
+ paginate("user/installations/#{installation}/repositories", options) do |data, last_response|
205
205
  data.repositories.concat last_response.data.repositories
206
206
  end
207
207
  end
@@ -215,8 +215,7 @@ module Octokit
215
215
  #
216
216
  # @return [Boolean] Success
217
217
  def delete_installation(installation, options = {})
218
- opts = ensure_api_media_type(:uninstall_github_app, options)
219
- boolean_from_response :delete, "app/installations/#{installation}", opts
218
+ boolean_from_response :delete, "app/installations/#{installation}", options
220
219
  end
221
220
  end
222
221
  end
@@ -59,7 +59,7 @@ module Octokit
59
59
  # client = Octokit::Client.new(:login => 'ctshryock', :password => 'secret')
60
60
  # client.create_authorization({:idempotent => true, :client_id => 'xxxx', :client_secret => 'yyyy', :scopes => ["user"]})
61
61
  def create_authorization(options = {})
62
- # Techincally we can omit scopes as GitHub has a default, however the
62
+ # Technically we can omit scopes as GitHub has a default, however the
63
63
  # API will reject us if we send a POST request with an empty body.
64
64
  options = options.dup
65
65
  if options.delete :idempotent
@@ -23,7 +23,6 @@ module Octokit
23
23
  # check_run.head_sha # => "7638417db6d59f3c431d3e1f261cc637155684cd"
24
24
  # check_run.status # => "queued"
25
25
  def create_check_run(repo, name, head_sha, options = {})
26
- ensure_api_media_type(:checks, options)
27
26
  options[:name] = name
28
27
  options[:head_sha] = head_sha
29
28
 
@@ -41,8 +40,6 @@ module Octokit
41
40
  # check_run.id # => 51295429
42
41
  # check_run.status # => "in_progress"
43
42
  def update_check_run(repo, id, options = {})
44
- ensure_api_media_type(:checks, options)
45
-
46
43
  patch "#{Repository.path repo}/check-runs/#{id}", options
47
44
  end
48
45
 
@@ -63,8 +60,6 @@ module Octokit
63
60
  # result.check_runs[0].id # => 51295429
64
61
  # result.check_runs[0].status # => "in_progress"
65
62
  def check_runs_for_ref(repo, ref, options = {})
66
- ensure_api_media_type(:checks, options)
67
-
68
63
  get "#{Repository.path repo}/commits/#{ref}/check-runs", options
69
64
  end
70
65
  alias :list_check_runs_for_ref :check_runs_for_ref
@@ -86,8 +81,6 @@ module Octokit
86
81
  # result.check_runs[0].check_suite.id # => 50440400
87
82
  # result.check_runs[0].status # => "in_progress"
88
83
  def check_runs_for_check_suite(repo, id, options = {})
89
- ensure_api_media_type(:checks, options)
90
-
91
84
  get "#{Repository.path repo}/check-suites/#{id}/check-runs", options
92
85
  end
93
86
  alias :list_check_runs_for_check_suite :check_runs_for_check_suite
@@ -99,8 +92,6 @@ module Octokit
99
92
  # @return [Sawyer::Resource] A hash representing the check run
100
93
  # @see https://developer.github.com/v3/checks/runs/#get-a-single-check-run
101
94
  def check_run(repo, id, options = {})
102
- ensure_api_media_type(:checks, options)
103
-
104
95
  get "#{Repository.path repo}/check-runs/#{id}", options
105
96
  end
106
97
 
@@ -116,8 +107,6 @@ module Octokit
116
107
  # annotations[0].path # => "README.md"
117
108
  # annotations[0].message # => "Looks good!"
118
109
  def check_run_annotations(repo, id, options = {})
119
- ensure_api_media_type(:checks, options)
120
-
121
110
  get "#{Repository.path repo}/check-runs/#{id}/annotations", options
122
111
  end
123
112
 
@@ -132,8 +121,6 @@ module Octokit
132
121
  # @return [Sawyer::Resource] A hash representing the check suite
133
122
  # @see https://developer.github.com/v3/checks/suites/#get-a-single-check-suite
134
123
  def check_suite(repo, id, options = {})
135
- ensure_api_media_type(:checks, options)
136
-
137
124
  get "#{Repository.path repo}/check-suites/#{id}", options
138
125
  end
139
126
 
@@ -153,8 +140,6 @@ module Octokit
153
140
  # result.check_suites[0].id # => 50440400
154
141
  # result.check_suites[0].app.id # => 76765
155
142
  def check_suites_for_ref(repo, ref, options = {})
156
- ensure_api_media_type(:checks, options)
157
-
158
143
  get "#{Repository.path repo}/commits/#{ref}/check-suites", options
159
144
  end
160
145
  alias :list_check_suites_for_ref :check_suites_for_ref
@@ -172,8 +157,6 @@ module Octokit
172
157
  # result.preferences.auto_trigger_checks[0].setting # => false
173
158
  # result.repository.full_name # => "octocat/Hello-World"
174
159
  def set_check_suite_preferences(repo, options = {})
175
- ensure_api_media_type(:checks, options)
176
-
177
160
  patch "#{Repository.path repo}/check-suites/preferences", options
178
161
  end
179
162
 
@@ -188,7 +171,6 @@ module Octokit
188
171
  # check_suite.head_sha # => "7638417db6d59f3c431d3e1f261cc637155684cd"
189
172
  # check_suite.status # => "queued"
190
173
  def create_check_suite(repo, head_sha, options = {})
191
- ensure_api_media_type(:checks, options)
192
174
  options[:head_sha] = head_sha
193
175
 
194
176
  post "#{Repository.path repo}/check-suites", options
@@ -201,8 +183,6 @@ module Octokit
201
183
  # @return [Boolean] True if successful, raises an error otherwise
202
184
  # @see https://developer.github.com/v3/checks/suites/#rerequest-check-suite
203
185
  def rerequest_check_suite(repo, id, options = {})
204
- ensure_api_media_type(:checks, options)
205
-
206
186
  post "#{Repository.path repo}/check-suites/#{id}/rerequest", options
207
187
  true
208
188
  end
@@ -189,13 +189,18 @@ module Octokit
189
189
 
190
190
  # Compare two commits
191
191
  #
192
+ # When using auto_pagination, commits from all pages will be concatenated
193
+ # into the <tt>commits</tt> attribute of the first page's response.
194
+ #
192
195
  # @param repo [Integer, String, Hash, Repository] A GitHub repository
193
196
  # @param start [String] The sha of the starting commit
194
197
  # @param endd [String] The sha of the ending commit
195
198
  # @return [Sawyer::Resource] A hash representing the comparison
196
199
  # @see https://developer.github.com/v3/repos/commits/#compare-two-commits
197
200
  def compare(repo, start, endd, options = {})
198
- get "#{Repository.path repo}/compare/#{start}...#{endd}", options
201
+ paginate "#{Repository.path repo}/compare/#{start}...#{endd}", options do |data, last_response|
202
+ data.commits.concat last_response.data.commits
203
+ end
199
204
  end
200
205
 
201
206
  # Merge a branch or sha
@@ -16,6 +16,8 @@ module Octokit
16
16
  # @see https://developer.github.com/v3/repos/contents/#get-the-readme
17
17
  # @example Get the readme file for a repo
18
18
  # Octokit.readme("octokit/octokit.rb")
19
+ # @example Get the readme file for a particular branch of the repo
20
+ # Octokit.readme("octokit/octokit.rb", :query => {:ref => 'some-other-branch'})
19
21
  def readme(repo, options={})
20
22
  get "#{Repository.path repo}/readme", options
21
23
  end
@@ -29,6 +31,8 @@ module Octokit
29
31
  # @see https://developer.github.com/v3/repos/contents/#get-contents
30
32
  # @example List the contents of lib/octokit.rb
31
33
  # Octokit.contents("octokit/octokit.rb", :path => 'lib/octokit.rb')
34
+ # @example Lists the contents of lib /octokit.rb on a particular branch
35
+ # Octokit.contents("octokit/octokit.rb", :path => 'lib/octokit.rb', :query => {:ref => 'some-other-branch'})
32
36
  def contents(repo, options={})
33
37
  options = options.dup
34
38
  repo_path = options.delete :path
@@ -43,6 +43,16 @@ module Octokit
43
43
  post("#{Repository.path repo}/deployments", options)
44
44
  end
45
45
 
46
+ # Delete a Deployment
47
+ #
48
+ # @param repo [Integer, String, Repository, Hash] A GitHub repository
49
+ # @param deployment_id [Integer, String, Repository, Hash] A GitHub repository
50
+ # @return [No Content]
51
+ # @see https://developer.github.com/v3/repos/deployments/#delete-a-deployment
52
+ def delete_deployment(repo, deployment_id, options = {})
53
+ delete("#{Repository.path repo}/deployments/#{deployment_id}", options)
54
+ end
55
+
46
56
  # List all statuses for a Deployment
47
57
  #
48
58
  # @param deployment_url [String] A URL for a deployment resource
@@ -62,7 +62,7 @@ module Octokit
62
62
  #
63
63
  # Applications can revoke (delete) a token
64
64
  #
65
- # @param token [String] 40 character GitHub OAuth access token
65
+ # @param access_token [String] 40 character GitHub OAuth access token
66
66
  #
67
67
  # @return [Boolean] Result
68
68
  # @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-token
@@ -93,7 +93,7 @@ module Octokit
93
93
  #
94
94
  # OAuth application owners can revoke a grant for their OAuth application and a specific user.
95
95
  #
96
- # @param accces_token [String] 40 character GitHub OAuth access token
96
+ # @param access_token [String] 40 character GitHub OAuth access token
97
97
  #
98
98
  # @return [Boolean] Result
99
99
  # @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-token