octokit 4.22.0 → 9.2.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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +117 -95
  3. data/Rakefile +20 -14
  4. data/lib/ext/sawyer/relation.rb +4 -2
  5. data/lib/octokit/arguments.rb +3 -3
  6. data/lib/octokit/authentication.rb +10 -3
  7. data/lib/octokit/client/actions_artifacts.rb +71 -0
  8. data/lib/octokit/client/actions_secrets.rb +111 -8
  9. data/lib/octokit/client/actions_workflow_jobs.rb +65 -0
  10. data/lib/octokit/client/actions_workflow_runs.rb +23 -3
  11. data/lib/octokit/client/actions_workflows.rb +27 -2
  12. data/lib/octokit/client/apps.rb +63 -26
  13. data/lib/octokit/client/checks.rb +18 -9
  14. data/lib/octokit/client/code_scanning.rb +190 -0
  15. data/lib/octokit/client/codespaces_secrets.rb +108 -0
  16. data/lib/octokit/client/commit_branches.rb +2 -2
  17. data/lib/octokit/client/commit_comments.rb +8 -8
  18. data/lib/octokit/client/commit_pulls.rb +2 -2
  19. data/lib/octokit/client/commits.rb +25 -33
  20. data/lib/octokit/client/community_profile.rb +2 -3
  21. data/lib/octokit/client/contents.rb +19 -22
  22. data/lib/octokit/client/dependabot_secrets.rb +108 -0
  23. data/lib/octokit/client/deployments.rb +8 -8
  24. data/lib/octokit/client/downloads.rb +5 -6
  25. data/lib/octokit/client/emojis.rb +3 -3
  26. data/lib/octokit/client/environments.rb +58 -0
  27. data/lib/octokit/client/events.rb +4 -5
  28. data/lib/octokit/client/feeds.rb +4 -5
  29. data/lib/octokit/client/gists.rb +6 -6
  30. data/lib/octokit/client/gitignore.rb +3 -3
  31. data/lib/octokit/client/hooks.rb +9 -19
  32. data/lib/octokit/client/issues.rb +14 -15
  33. data/lib/octokit/client/labels.rb +10 -10
  34. data/lib/octokit/client/legacy_search.rb +3 -3
  35. data/lib/octokit/client/licenses.rb +3 -6
  36. data/lib/octokit/client/markdown.rb +3 -3
  37. data/lib/octokit/client/marketplace.rb +4 -4
  38. data/lib/octokit/client/meta.rb +4 -5
  39. data/lib/octokit/client/milestones.rb +5 -5
  40. data/lib/octokit/client/notifications.rb +6 -6
  41. data/lib/octokit/client/oauth_applications.rb +1 -7
  42. data/lib/octokit/client/objects.rb +14 -14
  43. data/lib/octokit/client/organizations.rb +100 -56
  44. data/lib/octokit/client/pages.rb +5 -7
  45. data/lib/octokit/client/projects.rb +44 -64
  46. data/lib/octokit/client/pull_requests.rb +66 -45
  47. data/lib/octokit/client/rate_limit.rb +9 -11
  48. data/lib/octokit/client/reactions.rb +62 -16
  49. data/lib/octokit/client/refs.rb +14 -17
  50. data/lib/octokit/client/releases.rb +13 -13
  51. data/lib/octokit/client/repositories.rb +92 -69
  52. data/lib/octokit/client/repository_invitations.rb +3 -3
  53. data/lib/octokit/client/reviews.rb +8 -8
  54. data/lib/octokit/client/say.rb +4 -5
  55. data/lib/octokit/client/search.rb +24 -10
  56. data/lib/octokit/client/service_status.rb +19 -9
  57. data/lib/octokit/client/source_import.rb +7 -12
  58. data/lib/octokit/client/stats.rb +10 -9
  59. data/lib/octokit/client/statuses.rb +5 -5
  60. data/lib/octokit/client/tokens.rb +31 -0
  61. data/lib/octokit/client/traffic.rb +6 -11
  62. data/lib/octokit/client/users.rb +54 -33
  63. data/lib/octokit/client.rb +42 -18
  64. data/lib/octokit/configurable.rb +51 -31
  65. data/lib/octokit/connection.rb +30 -21
  66. data/lib/octokit/default.rb +66 -35
  67. data/lib/octokit/enterprise_admin_client/admin_stats.rb +13 -14
  68. data/lib/octokit/enterprise_admin_client/license.rb +3 -4
  69. data/lib/octokit/enterprise_admin_client/orgs.rb +3 -4
  70. data/lib/octokit/enterprise_admin_client/search_indexing.rb +7 -8
  71. data/lib/octokit/enterprise_admin_client/users.rb +5 -4
  72. data/lib/octokit/enterprise_admin_client.rb +9 -3
  73. data/lib/octokit/enterprise_management_console_client/management_console.rb +51 -33
  74. data/lib/octokit/enterprise_management_console_client.rb +8 -2
  75. data/lib/octokit/error.rb +51 -34
  76. data/lib/octokit/gist.rb +3 -4
  77. data/lib/octokit/manage_ghes_client/manage_ghes.rb +178 -0
  78. data/lib/octokit/manage_ghes_client.rb +64 -0
  79. data/lib/octokit/middleware/follow_redirects.rb +13 -12
  80. data/lib/octokit/organization.rb +3 -1
  81. data/lib/octokit/rate_limit.rb +8 -6
  82. data/lib/octokit/repo_arguments.rb +3 -4
  83. data/lib/octokit/repository.rb +32 -25
  84. data/lib/octokit/response/base_middleware.rb +10 -0
  85. data/lib/octokit/response/feed_parser.rb +5 -7
  86. data/lib/octokit/response/raise_error.rb +4 -4
  87. data/lib/octokit/user.rb +4 -2
  88. data/lib/octokit/version.rb +4 -2
  89. data/lib/octokit/warnable.rb +4 -5
  90. data/lib/octokit.rb +30 -8
  91. data/octokit.gemspec +12 -11
  92. metadata +19 -31
  93. data/lib/octokit/client/authorizations.rb +0 -182
  94. data/lib/octokit/client/pub_sub_hubbub.rb +0 -111
  95. data/lib/octokit/preview.rb +0 -46
@@ -1,13 +1,13 @@
1
- require 'cgi'
1
+ # frozen_string_literal: true
2
+
3
+ require 'erb'
2
4
 
3
5
  module Octokit
4
6
  class Client
5
-
6
7
  # Methods for the Issue Labels API
7
8
  #
8
9
  # @see https://developer.github.com/v3/issues/labels/
9
10
  module Labels
10
-
11
11
  # List available labels for a repository
12
12
  #
13
13
  # @param repo [Integer, String, Repository, Hash] A GitHub repository
@@ -28,7 +28,7 @@ module Octokit
28
28
  # @example Get the "V3 Addition" label from octokit/octokit.rb
29
29
  # Octokit.label("octokit/octokit.rb", "V3 Addition")
30
30
  def label(repo, name, options = {})
31
- get "#{Repository.path repo}/labels/#{name}", options
31
+ get "#{Repository.path repo}/labels/#{ERB::Util.url_encode(name)}", options
32
32
  end
33
33
 
34
34
  # Add a label to a repository
@@ -40,8 +40,8 @@ module Octokit
40
40
  # @see https://developer.github.com/v3/issues/labels/#create-a-label
41
41
  # @example Add a new label "Version 1.0" with color "#cccccc"
42
42
  # Octokit.add_label("octokit/octokit.rb", "Version 1.0", "cccccc")
43
- def add_label(repo, label, color="ffffff", options = {})
44
- post "#{Repository.path repo}/labels", options.merge({:name => label, :color => color})
43
+ def add_label(repo, label, color = 'ffffff', options = {})
44
+ post "#{Repository.path repo}/labels", options.merge({ name: label, color: color })
45
45
  end
46
46
 
47
47
  # Update a label
@@ -56,7 +56,7 @@ module Octokit
56
56
  # @example Update the label "Version 1.0" with new color "#cceeaa"
57
57
  # Octokit.update_label("octokit/octokit.rb", "Version 1.0", {:color => "cceeaa"})
58
58
  def update_label(repo, label, options = {})
59
- patch "#{Repository.path repo}/labels/#{label}", options
59
+ patch "#{Repository.path repo}/labels/#{ERB::Util.url_encode(label)}", options
60
60
  end
61
61
 
62
62
  # Delete a label from a repository.
@@ -70,7 +70,7 @@ module Octokit
70
70
  # @example Delete the label "Version 1.0" from the repository.
71
71
  # Octokit.delete_label!("octokit/octokit.rb", "Version 1.0")
72
72
  def delete_label!(repo, label, options = {})
73
- boolean_from_response :delete, "#{Repository.path repo}/labels/#{label}", options
73
+ boolean_from_response :delete, "#{Repository.path repo}/labels/#{ERB::Util.url_encode(label)}", options
74
74
  end
75
75
 
76
76
  # Remove a label from an Issue
@@ -85,7 +85,7 @@ module Octokit
85
85
  # @example Remove the label "Version 1.0" from the repository.
86
86
  # Octokit.remove_label("octokit/octokit.rb", 23, "Version 1.0")
87
87
  def remove_label(repo, number, label, options = {})
88
- delete "#{Repository.path repo}/issues/#{number}/labels/#{label}", options
88
+ delete "#{Repository.path repo}/issues/#{number}/labels/#{ERB::Util.url_encode(label)}", options
89
89
  end
90
90
 
91
91
  # Remove all label from an Issue
@@ -136,7 +136,7 @@ module Octokit
136
136
  # @see https://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue
137
137
  # @example Replace labels for octokit/octokit.rb Issue #10
138
138
  # Octokit.replace_all_labels("octokit/octokit.rb", 10, ['V3 Transition', 'Improvement'])
139
- def replace_all_labels(repo, number, labels, options = {})
139
+ def replace_all_labels(repo, number, labels, _options = {})
140
140
  put "#{Repository.path repo}/issues/#{number}/labels", labels
141
141
  end
142
142
 
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Legacy Search API
5
6
  #
6
7
  # @see https://developer.github.com/v3/search/
7
8
  module LegacySearch
8
-
9
9
  # Legacy repository search
10
10
  #
11
11
  # @see https://developer.github.com/v3/search/#search-repositories
@@ -23,7 +23,7 @@ module Octokit
23
23
  # @return [Array<Sawyer::Resource>] A list of issues matching the search term and state
24
24
  # @example Search for 'test' in the open issues for sferik/rails_admin
25
25
  # Octokit.search_issues("sferik/rails_admin", 'test', 'open')
26
- def legacy_search_issues(repo, search_term, state='open', options = {})
26
+ def legacy_search_issues(repo, search_term, state = 'open', options = {})
27
27
  get("legacy/issues/search/#{Repository.new(repo)}/#{state}/#{search_term}", options)['issues']
28
28
  end
29
29
 
@@ -1,10 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for licenses API
5
6
  #
6
7
  module Licenses
7
-
8
8
  # List all licenses
9
9
  #
10
10
  # @see https://developer.github.com/v3/licenses/#list-all-licenses
@@ -12,8 +12,7 @@ module Octokit
12
12
  # @example
13
13
  # Octokit.licenses
14
14
  def licenses(options = {})
15
- options = ensure_api_media_type(:licenses, options)
16
- paginate "licenses", options
15
+ paginate 'licenses', options
17
16
  end
18
17
 
19
18
  # List an individual license
@@ -24,7 +23,6 @@ module Octokit
24
23
  # @example
25
24
  # Octokit.license 'mit'
26
25
  def license(license_name, options = {})
27
- options = ensure_api_media_type(:licenses, options)
28
26
  get "licenses/#{license_name}", options
29
27
  end
30
28
 
@@ -37,7 +35,6 @@ module Octokit
37
35
  # @example
38
36
  # Octokit.repository_license_contents 'benbalter/licensee'
39
37
  def repository_license_contents(repo, options = {})
40
- options = ensure_api_media_type(:licenses, options)
41
38
  get "#{Repository.path repo}/license", options
42
39
  end
43
40
  end
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Markdown API
5
6
  #
6
7
  # @see https://developer.github.com/v3/markdown/
7
8
  module Markdown
8
-
9
9
  # Render an arbitrary Markdown document
10
10
  #
11
11
  # @param text [String] Markdown source
@@ -20,7 +20,7 @@ module Octokit
20
20
  options[:repo] = Repository.new(options[:repo]) if options[:repo]
21
21
  options[:accept] = 'application/vnd.github.raw'
22
22
 
23
- post "markdown", options
23
+ post 'markdown', options
24
24
  end
25
25
  end
26
26
  end
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Marketplace Listing API
5
6
  #
6
7
  # @see https://developer.github.com/v3/apps/marketplace/
7
8
  module Marketplace
8
-
9
9
  # List all plans for an app's marketplace listing
10
10
  #
11
11
  # @param options [Hash] A customizable set of options
@@ -14,7 +14,7 @@ module Octokit
14
14
  #
15
15
  # @return [Array<Sawyer::Resource>] A list of plans
16
16
  def list_plans(options = {})
17
- paginate "/marketplace_listing/plans", options
17
+ paginate '/marketplace_listing/plans', options
18
18
  end
19
19
 
20
20
  # List all GitHub accounts on a specific plan
@@ -49,7 +49,7 @@ module Octokit
49
49
  #
50
50
  # @return [Array<Sawyer::Resource>] A list of Marketplace purchases
51
51
  def marketplace_purchases(options = {})
52
- get "/user/marketplace_purchases", options
52
+ get '/user/marketplace_purchases', options
53
53
  end
54
54
  end
55
55
  end
@@ -1,21 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Meta API
5
6
  #
6
7
  # @see https://developer.github.com/v3/meta/
7
8
  module Meta
8
-
9
9
  # Get meta information about GitHub.com, the service.
10
10
  # @see https://developer.github.com/v3/meta/#meta
11
11
  # @return [Sawyer::Resource] Hash with meta information.
12
12
  # @example Get GitHub meta information
13
13
  # @client.github_meta
14
14
  def meta(options = {})
15
- get "meta", options
15
+ get 'meta', options
16
16
  end
17
- alias :github_meta :meta
18
-
17
+ alias github_meta meta
19
18
  end
20
19
  end
21
20
  end
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Issues Milestones API
5
6
  #
6
7
  # @see https://developer.github.com/v3/issues/milestones/
7
8
  module Milestones
8
-
9
9
  # List milestones for a repository
10
10
  #
11
11
  # @param repository [Integer, String, Repository, Hash] A GitHub repository
@@ -21,7 +21,7 @@ module Octokit
21
21
  def list_milestones(repository, options = {})
22
22
  paginate "#{Repository.path repository}/milestones", options
23
23
  end
24
- alias :milestones :list_milestones
24
+ alias milestones list_milestones
25
25
 
26
26
  # Get a single milestone for a repository
27
27
  #
@@ -49,7 +49,7 @@ module Octokit
49
49
  # @example Create a milestone for a repository
50
50
  # Octokit.create_milestone("octokit/octokit.rb", "0.7.0", {:description => 'Add support for v3 of Github API'})
51
51
  def create_milestone(repository, title, options = {})
52
- post "#{Repository.path repository}/milestones", options.merge({:title => title})
52
+ post "#{Repository.path repository}/milestones", options.merge({ title: title })
53
53
  end
54
54
 
55
55
  # Update a milestone for a repository
@@ -68,7 +68,7 @@ module Octokit
68
68
  def update_milestone(repository, number, options = {})
69
69
  patch "#{Repository.path repository}/milestones/#{number}", options
70
70
  end
71
- alias :edit_milestone :update_milestone
71
+ alias edit_milestone update_milestone
72
72
 
73
73
  # Delete a single milestone for a repository
74
74
  #
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Notifications API
5
6
  #
6
7
  # @see https://developer.github.com/v3/activity/notifications/
7
8
  module Notifications
8
-
9
9
  # List your notifications
10
10
  #
11
11
  # @param options [Hash] Optional parameters
@@ -24,7 +24,7 @@ module Octokit
24
24
  # @example Get all notifications since a certain time.
25
25
  # @client.notifications({all: true, since: '2012-10-09T23:39:01Z'})
26
26
  def notifications(options = {})
27
- paginate "notifications", options
27
+ paginate 'notifications', options
28
28
  end
29
29
 
30
30
  # List your notifications in a repository
@@ -48,7 +48,7 @@ module Octokit
48
48
  def repository_notifications(repo, options = {})
49
49
  paginate "#{Repository.path repo}/notifications", options
50
50
  end
51
- alias :repo_notifications :repository_notifications
51
+ alias repo_notifications repository_notifications
52
52
 
53
53
  # Mark notifications as read
54
54
  #
@@ -66,7 +66,7 @@ module Octokit
66
66
  # @example
67
67
  # @client.mark_notifications_as_read
68
68
  def mark_notifications_as_read(options = {})
69
- request :put, "notifications", options
69
+ request :put, 'notifications', options
70
70
 
71
71
  last_response.status == 205
72
72
  end
@@ -91,7 +91,7 @@ module Octokit
91
91
 
92
92
  last_response.status == 205
93
93
  end
94
- alias :mark_repo_notifications_as_read :mark_repository_notifications_as_read
94
+ alias mark_repo_notifications_as_read mark_repository_notifications_as_read
95
95
 
96
96
  # List notifications for a specific thread
97
97
  #
@@ -2,12 +2,10 @@
2
2
 
3
3
  module Octokit
4
4
  class Client
5
-
6
5
  # Methods for the OauthApplications API
7
6
  #
8
7
  # @see https://developer.github.com/v3/apps/oauth_applications
9
8
  module OauthApplications
10
-
11
9
  # Check if a token is valid.
12
10
  #
13
11
  # Applications can check if a token is valid without rate limits.
@@ -21,7 +19,6 @@ module Octokit
21
19
  # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret')
22
20
  # client.check_token('deadbeef1234567890deadbeef987654321')
23
21
  def check_token(access_token, options = {})
24
- options = ensure_api_media_type(:applications_api, options.dup)
25
22
  options[:access_token] = access_token
26
23
 
27
24
  key = options.delete(:client_id) || client_id
@@ -46,7 +43,6 @@ module Octokit
46
43
  # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret')
47
44
  # client.reset_token('deadbeef1234567890deadbeef987654321')
48
45
  def reset_token(access_token, options = {})
49
- options = ensure_api_media_type(:applications_api, options.dup)
50
46
  options[:access_token] = access_token
51
47
 
52
48
  key = options.delete(:client_id) || client_id
@@ -69,9 +65,8 @@ module Octokit
69
65
  #
70
66
  # @example
71
67
  # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret')
72
- # client.delete_token('deadbeef1234567890deadbeef987654321')
68
+ # client.delete_app_token('deadbeef1234567890deadbeef987654321')
73
69
  def delete_app_token(access_token, options = {})
74
- options = ensure_api_media_type(:applications_api, options.dup)
75
70
  options[:access_token] = access_token
76
71
 
77
72
  key = options.delete(:client_id) || client_id
@@ -102,7 +97,6 @@ module Octokit
102
97
  # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret')
103
98
  # client.delete_app_authorization('deadbeef1234567890deadbeef987654321')
104
99
  def delete_app_authorization(access_token, options = {})
105
- options = ensure_api_media_type(:applications_api, options.dup)
106
100
  options[:access_token] = access_token
107
101
 
108
102
  key = options.delete(:client_id) || client_id
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Git Data API
5
6
  #
6
7
  # @see https://developer.github.com/v3/git/
7
8
  module Objects
8
-
9
9
  # Get a single tree, fetching information about its root-level objects
10
10
  #
11
11
  # Pass <tt>:recursive => true</tt> in <tt>options</tt> to fetch information about all of the tree's objects, including those in subdirectories.
@@ -38,7 +38,7 @@ module Octokit
38
38
  # tree.sha # => "cd8274d15fa3ae2ab983129fb037999f264ba9a7"
39
39
  # tree.tree.first.path # => "file.rb"
40
40
  def create_tree(repo, tree, options = {})
41
- parameters = { :tree => tree }
41
+ parameters = { tree: tree }
42
42
  post "#{Repository.path repo}/git/trees", options.merge(parameters)
43
43
  end
44
44
 
@@ -74,10 +74,10 @@ module Octokit
74
74
  # @example Create a blob containing <tt>foo bar baz</tt>, encoded using base64
75
75
  # require "base64"
76
76
  # Octokit.create_blob("octocat/Hello-World", Base64.encode64("foo bar baz"), "base64")
77
- def create_blob(repo, content, encoding="utf-8", options = {})
77
+ def create_blob(repo, content, encoding = 'utf-8', options = {})
78
78
  parameters = {
79
- :content => content,
80
- :encoding => encoding
79
+ content: content,
80
+ encoding: encoding
81
81
  }
82
82
  blob = post "#{Repository.path repo}/git/blobs", options.merge(parameters)
83
83
 
@@ -124,14 +124,14 @@ module Octokit
124
124
  # )
125
125
  def create_tag(repo, tag, message, object_sha, type, tagger_name, tagger_email, tagger_date, options = {})
126
126
  options.merge!(
127
- :tag => tag,
128
- :message => message,
129
- :object => object_sha,
130
- :type => type,
131
- :tagger => {
132
- :name => tagger_name,
133
- :email => tagger_email,
134
- :date => tagger_date
127
+ tag: tag,
128
+ message: message,
129
+ object: object_sha,
130
+ type: type,
131
+ tagger: {
132
+ name: tagger_name,
133
+ email: tagger_email,
134
+ date: tagger_date
135
135
  }
136
136
  )
137
137
  post "#{Repository.path repo}/git/tags", options