octokit 4.25.1 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,7 +17,6 @@ module Octokit
17
17
  #
18
18
  # @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
19
19
  def commit_comment_reactions(repo, id, options = {})
20
- options = ensure_api_media_type(:reactions, options)
21
20
  get "#{Repository.path repo}/comments/#{id}/reactions", options
22
21
  end
23
22
 
@@ -34,7 +33,7 @@ module Octokit
34
33
  #
35
34
  # @return [<Sawyer::Resource>] Hash representing the reaction
36
35
  def create_commit_comment_reaction(repo, id, reaction, options = {})
37
- options = ensure_api_media_type(:reactions, options.merge(content: reaction))
36
+ options = options.merge(content: reaction)
38
37
  post "#{Repository.path repo}/comments/#{id}/reactions", options
39
38
  end
40
39
 
@@ -49,7 +48,6 @@ module Octokit
49
48
  #
50
49
  # @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
51
50
  def issue_reactions(repo, number, options = {})
52
- options = ensure_api_media_type(:reactions, options)
53
51
  get "#{Repository.path repo}/issues/#{number}/reactions", options
54
52
  end
55
53
 
@@ -67,7 +65,7 @@ module Octokit
67
65
  #
68
66
  # @return [<Sawyer::Resource>] Hash representing the reaction.
69
67
  def create_issue_reaction(repo, number, reaction, options = {})
70
- options = ensure_api_media_type(:reactions, options.merge(content: reaction))
68
+ options = options.merge(content: reaction)
71
69
  post "#{Repository.path repo}/issues/#{number}/reactions", options
72
70
  end
73
71
 
@@ -83,7 +81,6 @@ module Octokit
83
81
  #
84
82
  # @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
85
83
  def issue_comment_reactions(repo, id, options = {})
86
- options = ensure_api_media_type(:reactions, options)
87
84
  get "#{Repository.path repo}/issues/comments/#{id}/reactions", options
88
85
  end
89
86
 
@@ -101,7 +98,7 @@ module Octokit
101
98
  #
102
99
  # @return [<Sawyer::Resource>] Hashes representing the reaction.
103
100
  def create_issue_comment_reaction(repo, id, reaction, options = {})
104
- options = ensure_api_media_type(:reactions, options.merge(content: reaction))
101
+ options = options.merge(content: reaction)
105
102
  post "#{Repository.path repo}/issues/comments/#{id}/reactions", options
106
103
  end
107
104
 
@@ -117,7 +114,6 @@ module Octokit
117
114
  #
118
115
  # @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
119
116
  def pull_request_review_comment_reactions(repo, id, options = {})
120
- options = ensure_api_media_type(:reactions, options)
121
117
  get "#{Repository.path repo}/pulls/comments/#{id}/reactions", options
122
118
  end
123
119
 
@@ -135,7 +131,7 @@ module Octokit
135
131
  #
136
132
  # @return [<Sawyer::Resource>] Hash representing the reaction.
137
133
  def create_pull_request_review_comment_reaction(repo, id, reaction, options = {})
138
- options = ensure_api_media_type(:reactions, options.merge(content: reaction))
134
+ options = options.merge(content: reaction)
139
135
  post "#{Repository.path repo}/pulls/comments/#{id}/reactions", options
140
136
  end
141
137
 
@@ -150,7 +146,6 @@ module Octokit
150
146
  #
151
147
  # @return [Boolean] Return true if reaction was deleted, false otherwise.
152
148
  def delete_reaction(id, options = {})
153
- options = ensure_api_media_type(:reactions, options)
154
149
  boolean_from_response :delete, "reactions/#{id}", options
155
150
  end
156
151
  end
@@ -13,9 +13,7 @@ module Octokit
13
13
  # @return [Boolean]
14
14
  def repository?(repo, options = {})
15
15
  !!repository(repo, options)
16
- rescue Octokit::InvalidRepository
17
- false
18
- rescue Octokit::NotFound
16
+ rescue Octokit::InvalidRepository, Octokit::NotFound
19
17
  false
20
18
  end
21
19
 
@@ -47,9 +45,6 @@ module Octokit
47
45
  # @return [Sawyer::Resource] Repository information
48
46
  def edit_repository(repo, options = {})
49
47
  repo = Repository.new(repo)
50
- if options.include? :is_template
51
- options = ensure_api_media_type(:template_repositories, options)
52
- end
53
48
  options[:name] ||= repo.name
54
49
  patch "repos/#{repo}", options
55
50
  end
@@ -160,9 +155,6 @@ module Octokit
160
155
  opts = options.dup
161
156
  organization = opts.delete :organization
162
157
  opts.merge! name: name
163
- if opts.include? :is_template
164
- opts = ensure_api_media_type(:template_repositories, opts)
165
- end
166
158
 
167
159
  if organization.nil?
168
160
  post 'user/repos', opts
@@ -195,7 +187,6 @@ module Octokit
195
187
  # @param options [Array<Integer>] :team_ids ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.
196
188
  # @return [Sawyer::Resource] Repository info for the transferred repository
197
189
  def transfer_repository(repo, new_owner, options = {})
198
- options = ensure_api_media_type(:transfer_repository, options)
199
190
  post "#{Repository.path repo}/transfer", options.merge({ new_owner: new_owner })
200
191
  end
201
192
  alias transfer_repo transfer_repository
@@ -211,7 +202,6 @@ module Octokit
211
202
  # @return [Sawyer::Resource] Repository info for the new repository
212
203
  def create_repository_from_template(repo, name, options = {})
213
204
  options.merge! name: name
214
- options = ensure_api_media_type(:template_repositories, options)
215
205
  post "#{Repository.path repo}/generate", options
216
206
  end
217
207
  alias create_repo_from_template create_repository_from_template
@@ -431,8 +421,7 @@ module Octokit
431
421
  # @example List topics for octokit/octokit.rb
432
422
  # client.topics('octokit/octokit.rb')
433
423
  def topics(repo, options = {})
434
- opts = ensure_api_media_type(:topics, options)
435
- paginate "#{Repository.path repo}/topics", opts
424
+ paginate "#{Repository.path repo}/topics", options
436
425
  end
437
426
 
438
427
  # Replace all topics for a repository
@@ -448,8 +437,7 @@ module Octokit
448
437
  # @example Clear all topics for octokit/octokit.rb
449
438
  # client.replace_all_topics('octokit/octokit.rb', [])
450
439
  def replace_all_topics(repo, names, options = {})
451
- opts = ensure_api_media_type(:topics, options)
452
- put "#{Repository.path repo}/topics", opts.merge(names: names)
440
+ put "#{Repository.path repo}/topics", options.merge(names: names)
453
441
  end
454
442
 
455
443
  # List contributors to a repo
@@ -601,10 +589,9 @@ module Octokit
601
589
  # @example
602
590
  # @client.protect_branch('octokit/octokit.rb', 'master', foo)
603
591
  def protect_branch(repo, branch, options = {})
604
- opts = ensure_api_media_type(:branch_protection, options)
605
- opts[:restrictions] ||= nil
606
- opts[:required_status_checks] ||= nil
607
- put "#{Repository.path repo}/branches/#{branch}/protection", opts
592
+ options[:restrictions] ||= nil
593
+ options[:required_status_checks] ||= nil
594
+ put "#{Repository.path repo}/branches/#{branch}/protection", options
608
595
  end
609
596
 
610
597
  # Get branch protection summary
@@ -617,12 +604,9 @@ module Octokit
617
604
  # @example
618
605
  # @client.branch_protection('octokit/octokit.rb', 'master')
619
606
  def branch_protection(repo, branch, options = {})
620
- opts = ensure_api_media_type(:branch_protection, options)
621
- begin
622
- get "#{Repository.path repo}/branches/#{branch}/protection", opts
623
- rescue Octokit::BranchNotProtected
624
- nil
625
- end
607
+ get "#{Repository.path repo}/branches/#{branch}/protection", options
608
+ rescue Octokit::BranchNotProtected
609
+ nil
626
610
  end
627
611
 
628
612
  # Unlock a single branch from a repository
@@ -636,8 +620,7 @@ module Octokit
636
620
  # @example
637
621
  # @client.unprotect_branch('octokit/octokit.rb', 'master')
638
622
  def unprotect_branch(repo, branch, options = {})
639
- opts = ensure_api_media_type(:branch_protection, options)
640
- boolean_from_response :delete, "#{Repository.path repo}/branches/#{branch}/protection", opts
623
+ boolean_from_response :delete, "#{Repository.path repo}/branches/#{branch}/protection", options
641
624
  end
642
625
 
643
626
  # Rename a single branch from a repository
@@ -763,8 +746,7 @@ module Octokit
763
746
  # @example
764
747
  # @client.vulnerability_alerts_enabled?("octokit/octokit.rb")
765
748
  def vulnerability_alerts_enabled?(repo, options = {})
766
- opts = ensure_api_media_type(:vulnerability_alerts, options)
767
- boolean_from_response(:get, "#{Repository.path repo}/vulnerability-alerts", opts)
749
+ boolean_from_response(:get, "#{Repository.path repo}/vulnerability-alerts", options)
768
750
  end
769
751
 
770
752
  # Enable vulnerability alerts for a repository
@@ -777,8 +759,7 @@ module Octokit
777
759
  # @example Enable vulnerability alerts for a repository
778
760
  # @client.enable_vulnerability_alerts("octokit/octokit.rb")
779
761
  def enable_vulnerability_alerts(repo, options = {})
780
- opts = ensure_api_media_type(:vulnerability_alerts, options)
781
- boolean_from_response(:put, "#{Repository.path repo}/vulnerability-alerts", opts)
762
+ boolean_from_response(:put, "#{Repository.path repo}/vulnerability-alerts", options)
782
763
  end
783
764
 
784
765
  # Disable vulnerability alerts for a repository
@@ -791,8 +772,7 @@ module Octokit
791
772
  # @example Disable vulnerability alerts for a repository
792
773
  # @client.disable_vulnerability_alerts("octokit/octokit.rb")
793
774
  def disable_vulnerability_alerts(repo, options = {})
794
- opts = ensure_api_media_type(:vulnerability_alerts, options)
795
- boolean_from_response(:delete, "#{Repository.path repo}/vulnerability-alerts", opts)
775
+ boolean_from_response(:delete, "#{Repository.path repo}/vulnerability-alerts", options)
796
776
  end
797
777
  end
798
778
  end
@@ -161,7 +161,7 @@ module Octokit
161
161
  # TODO(5.0): remove deprecated behavior
162
162
  if reviewers.is_a?(Array)
163
163
  octokit_warn(
164
- 'Deprecated: Octokit::Client#request_pull_request_review '\
164
+ 'Deprecated: Octokit::Client#request_pull_request_review ' \
165
165
  "no longer takes a separate :reviewers argument.\n" \
166
166
  'Please update your call to pass :reviewers and :team_reviewers as part of the options hash.'
167
167
  )
@@ -194,7 +194,7 @@ module Octokit
194
194
  # TODO(5.0): remove deprecated behavior
195
195
  if !reviewers.empty? && !options.empty?
196
196
  octokit_warn(
197
- 'Deprecated: Octokit::Client#delete_pull_request_review_request '\
197
+ 'Deprecated: Octokit::Client#delete_pull_request_review_request ' \
198
198
  "no longer takes a separate :reviewers argument.\n" \
199
199
  'Please update your call to pass :reviewers and :team_reviewers as part of the options hash.'
200
200
  )
@@ -31,7 +31,6 @@ module Octokit
31
31
  # @return [Sawyer::Resource] Search results object
32
32
  # @see https://developer.github.com/v3/search/#search-commits
33
33
  def search_commits(query, options = {})
34
- options = ensure_api_media_type(:commit_search, options)
35
34
  search 'search/commits', query, options
36
35
  end
37
36
 
@@ -64,6 +63,20 @@ module Octokit
64
63
  end
65
64
  alias search_repos search_repositories
66
65
 
66
+ # Search topics
67
+ #
68
+ # @param query [String] Search term and qualifiers
69
+ # @param options [Hash] Sort and pagination options
70
+ # @option options [String] :sort Sort field
71
+ # @option options [String] :order Sort order (asc or desc)
72
+ # @option options [Integer] :page Page of paginated results
73
+ # @option options [Integer] :per_page Number of items per page
74
+ # @return [Sawyer::Resource] Search results object
75
+ # @see https://developer.github.com/v3/search/#search-topics
76
+ def search_topics(query, options = {})
77
+ search 'search/topics', query, options
78
+ end
79
+
67
80
  # Search users
68
81
  #
69
82
  # @param query [String] Search term and qualifiers
@@ -42,7 +42,7 @@ module Octokit
42
42
  octokit_warn 'Octokit#start_source_import vcs parameter is now an option, please update your call before the next major Octokit version update.'
43
43
  arguments.options.merge!(vcs: vcs)
44
44
  end
45
- options = ensure_api_media_type(:source_imports, arguments.options.merge(vcs_url: vcs_url))
45
+ options = arguments.options.merge(vcs_url: vcs_url)
46
46
  put "#{Repository.path arguments.repo}/import", options
47
47
  end
48
48
 
@@ -55,7 +55,6 @@ module Octokit
55
55
  # @example
56
56
  # @client.source_import_progress("octokit/octokit.rb")
57
57
  def source_import_progress(repo, options = {})
58
- options = ensure_api_media_type(:source_imports, options)
59
58
  get "#{Repository.path repo}/import", options
60
59
  end
61
60
 
@@ -76,7 +75,6 @@ module Octokit
76
75
  # :vcs_password => "secret"
77
76
  # })
78
77
  def update_source_import(repo, options = {})
79
- options = ensure_api_media_type(:source_imports, options)
80
78
  patch "#{Repository.path repo}/import", options
81
79
  end
82
80
 
@@ -91,7 +89,6 @@ module Octokit
91
89
  # @example
92
90
  # @client.source_import_commit_authors("octokit/octokit.rb")
93
91
  def source_import_commit_authors(repo, options = {})
94
- options = ensure_api_media_type(:source_imports, options)
95
92
  get "#{Repository.path repo}/import/authors", options
96
93
  end
97
94
 
@@ -111,7 +108,7 @@ module Octokit
111
108
  # :name => "Hubot the Robot"
112
109
  # })
113
110
  def map_source_import_commit_author(author_url, values, options = {})
114
- options = ensure_api_media_type(:source_imports, options.merge(values))
111
+ options = options.merge(values)
115
112
  patch author_url, options
116
113
  end
117
114
 
@@ -124,7 +121,6 @@ module Octokit
124
121
  # @example
125
122
  # @client.cancel_source_import("octokit/octokit.rb")
126
123
  def cancel_source_import(repo, options = {})
127
- options = ensure_api_media_type(:source_imports, options)
128
124
  boolean_from_response :delete, "#{Repository.path repo}/import", options
129
125
  end
130
126
 
@@ -139,7 +135,6 @@ module Octokit
139
135
  # @example
140
136
  # @client.source_import_large_files("octokit/octokit.rb")
141
137
  def source_import_large_files(repo, options = {})
142
- options = ensure_api_media_type(:source_imports, options)
143
138
  get "#{Repository.path repo}/import/large_files", options
144
139
  end
145
140
 
@@ -153,7 +148,7 @@ module Octokit
153
148
  # @example
154
149
  # @client.opt_in_source_import_lfs("octokit/octokit.rb", "opt_in")
155
150
  def set_source_import_lfs_preference(repo, use_lfs, options = {})
156
- options = ensure_api_media_type(:source_imports, options.merge(use_lfs: use_lfs))
151
+ options = options.merge(use_lfs: use_lfs)
157
152
  patch "#{Repository.path repo}/import/lfs", options
158
153
  end
159
154
  end
@@ -14,8 +14,7 @@ module Octokit
14
14
  # @example
15
15
  # @client.top_referrers('octokit/octokit.rb')
16
16
  def top_referrers(repo, options = {})
17
- opts = ensure_api_media_type(:traffic, options)
18
- get "#{Repository.path repo}/traffic/popular/referrers", opts
17
+ get "#{Repository.path repo}/traffic/popular/referrers", options
19
18
  end
20
19
 
21
20
  # Get the top 10 popular contents over the last 14 days
@@ -26,8 +25,7 @@ module Octokit
26
25
  # @example
27
26
  # @client.top_paths('octokit/octokit.rb')
28
27
  def top_paths(repo, options = {})
29
- opts = ensure_api_media_type(:traffic, options)
30
- get "#{Repository.path repo}/traffic/popular/paths", opts
28
+ get "#{Repository.path repo}/traffic/popular/paths", options
31
29
  end
32
30
 
33
31
  # Get the total number of views and breakdown per day or week for the
@@ -43,8 +41,7 @@ module Octokit
43
41
  # @example Views per week
44
42
  # @client.views('octokit/octokit.rb', per: 'week')
45
43
  def views(repo, options = {})
46
- opts = ensure_api_media_type(:traffic, options)
47
- get "#{Repository.path repo}/traffic/views", opts
44
+ get "#{Repository.path repo}/traffic/views", options
48
45
  end
49
46
 
50
47
  # Get the total number of clones and breakdown per day or week for the
@@ -60,8 +57,7 @@ module Octokit
60
57
  # @example Clones per week
61
58
  # @client.clones('octokit/octokit.rb', per: 'week')
62
59
  def clones(repo, options = {})
63
- opts = ensure_api_media_type(:traffic, options)
64
- get "#{Repository.path repo}/traffic/clones", opts
60
+ get "#{Repository.path repo}/traffic/clones", options
65
61
  end
66
62
  end
67
63
  end
@@ -352,7 +352,6 @@ module Octokit
352
352
  # @client.start_migration(['octocat/hello-world'])
353
353
  # @see https://docs.github.com/en/rest/reference/migrations#start-a-user-migration
354
354
  def start_user_migration(repositories, options = {})
355
- options = ensure_api_media_type(:migrations, options)
356
355
  options[:repositories] = repositories
357
356
  post 'user/migrations', options
358
357
  end
@@ -364,7 +363,6 @@ module Octokit
364
363
  # @return [Array<Sawyer::Resource>] Array of migration resources.
365
364
  # @see https://docs.github.com/en/rest/reference/migrations#list-user-migrations
366
365
  def user_migrations(options = {})
367
- options = ensure_api_media_type(:migrations, options)
368
366
  paginate 'user/migrations', options
369
367
  end
370
368
 
@@ -375,7 +373,6 @@ module Octokit
375
373
  # @param id [Integer] ID number of the migration.
376
374
  # @see https://docs.github.com/en/rest/reference/migrations#get-a-user-migration-status
377
375
  def user_migration_status(id, options = {})
378
- options = ensure_api_media_type(:migrations, options)
379
376
  get "user/migrations/#{id}", options
380
377
  end
381
378
 
@@ -386,7 +383,6 @@ module Octokit
386
383
  # @param id [Integer] ID number of the migration.
387
384
  # @see https://docs.github.com/en/rest/reference/migrations#download-a-user-migration-archive
388
385
  def user_migration_archive_url(id, options = {})
389
- options = ensure_api_media_type(:migrations, options)
390
386
  url = "user/migrations/#{id}/archive"
391
387
 
392
388
  response = client_without_redirects(options).get(url)
@@ -400,7 +396,6 @@ module Octokit
400
396
  # @param id [Integer] ID number of the migration.
401
397
  # @see https://docs.github.com/en/rest/reference/migrations#delete-a-user-migration-archive
402
398
  def delete_user_migration_archive(id, options = {})
403
- options = ensure_api_media_type(:migrations, options)
404
399
  delete "user/migrations/#{id}/archive", options
405
400
  end
406
401
 
@@ -411,7 +406,6 @@ module Octokit
411
406
  # @param id [Integer] ID number of the migration.
412
407
  # @see https://docs.github.com/en/rest/reference/migrations#list-repositories-for-a-user-migration
413
408
  def user_migration_repositories(id, options = {})
414
- options = ensure_api_media_type(:migrations, options)
415
409
  get "user/migrations/#{id}/repositories", options
416
410
  end
417
411
 
@@ -423,7 +417,6 @@ module Octokit
423
417
  # @param repo [String] Name of the repository.
424
418
  # @see https://docs.github.com/en/rest/reference/migrations#unlock-a-user-repository
425
419
  def unlock_user_repository(id, repo, options = {})
426
- options = ensure_api_media_type(:migrations, options)
427
420
  delete "user/migrations/#{id}/repos/#{repo}/lock", options
428
421
  end
429
422
  end
@@ -11,9 +11,9 @@ require 'octokit/rate_limit'
11
11
  require 'octokit/repository'
12
12
  require 'octokit/user'
13
13
  require 'octokit/organization'
14
- require 'octokit/preview'
15
14
  require 'octokit/client/actions_secrets'
16
15
  require 'octokit/client/actions_workflows'
16
+ require 'octokit/client/actions_workflow_jobs'
17
17
  require 'octokit/client/actions_workflow_runs'
18
18
  require 'octokit/client/apps'
19
19
  require 'octokit/client/authorizations'
@@ -73,7 +73,6 @@ module Octokit
73
73
  include Octokit::Authentication
74
74
  include Octokit::Configurable
75
75
  include Octokit::Connection
76
- include Octokit::Preview
77
76
  include Octokit::Warnable
78
77
  include Octokit::Client::ActionsSecrets
79
78
  include Octokit::Client::Authorizations
@@ -93,6 +92,7 @@ module Octokit
93
92
  include Octokit::Client::Gitignore
94
93
  include Octokit::Client::Hooks
95
94
  include Octokit::Client::ActionsWorkflows
95
+ include Octokit::Client::ActionsWorkflowJobs
96
96
  include Octokit::Client::ActionsWorkflowRuns
97
97
  include Octokit::Client::Apps
98
98
  include Octokit::Client::Issues
@@ -134,9 +134,7 @@ module Octokit
134
134
  end
135
135
 
136
136
  def login
137
- @login ||= begin
138
- user.login if token_authenticated?
139
- end
137
+ @login ||= (user.login if token_authenticated?)
140
138
  end
141
139
 
142
140
  def netrc?
@@ -146,7 +144,7 @@ module Octokit
146
144
  private
147
145
 
148
146
  def options
149
- Hash[Octokit::Configurable.keys.map { |key| [key, instance_variable_get(:"@#{key}")] }]
147
+ Octokit::Configurable.keys.map { |key| [key, instance_variable_get(:"@#{key}")] }.to_h
150
148
  end
151
149
 
152
150
  def fetch_client_id_and_secret(overrides = {})
@@ -201,7 +201,7 @@ module Octokit
201
201
  end
202
202
  query = options.delete(:query)
203
203
  opts = { query: options }
204
- opts[:query].merge!(query) if query&.is_a?(Hash)
204
+ opts[:query].merge!(query) if query.is_a?(Hash)
205
205
  opts[:headers] = headers unless headers.empty?
206
206
 
207
207
  opts
@@ -49,55 +49,55 @@ module Octokit
49
49
  # Configuration options
50
50
  # @return [Hash]
51
51
  def options
52
- Hash[Octokit::Configurable.keys.map { |key| [key, send(key)] }]
52
+ Octokit::Configurable.keys.map { |key| [key, send(key)] }.to_h
53
53
  end
54
54
 
55
55
  # Default access token from ENV
56
56
  # @return [String]
57
57
  def access_token
58
- ENV['OCTOKIT_ACCESS_TOKEN']
58
+ ENV.fetch('OCTOKIT_ACCESS_TOKEN', nil)
59
59
  end
60
60
 
61
61
  # Default API endpoint from ENV or {API_ENDPOINT}
62
62
  # @return [String]
63
63
  def api_endpoint
64
- ENV['OCTOKIT_API_ENDPOINT'] || API_ENDPOINT
64
+ ENV.fetch('OCTOKIT_API_ENDPOINT') { API_ENDPOINT }
65
65
  end
66
66
 
67
67
  # Default pagination preference from ENV
68
68
  # @return [String]
69
69
  def auto_paginate
70
- ENV['OCTOKIT_AUTO_PAGINATE']
70
+ ENV.fetch('OCTOKIT_AUTO_PAGINATE', nil)
71
71
  end
72
72
 
73
73
  # Default bearer token from ENV
74
74
  # @return [String]
75
75
  def bearer_token
76
- ENV['OCTOKIT_BEARER_TOKEN']
76
+ ENV.fetch('OCTOKIT_BEARER_TOKEN', nil)
77
77
  end
78
78
 
79
79
  # Default OAuth app key from ENV
80
80
  # @return [String]
81
81
  def client_id
82
- ENV['OCTOKIT_CLIENT_ID']
82
+ ENV.fetch('OCTOKIT_CLIENT_ID', nil)
83
83
  end
84
84
 
85
85
  # Default OAuth app secret from ENV
86
86
  # @return [String]
87
87
  def client_secret
88
- ENV['OCTOKIT_SECRET']
88
+ ENV.fetch('OCTOKIT_SECRET', nil)
89
89
  end
90
90
 
91
91
  # Default management console password from ENV
92
92
  # @return [String]
93
93
  def management_console_password
94
- ENV['OCTOKIT_ENTERPRISE_MANAGEMENT_CONSOLE_PASSWORD']
94
+ ENV.fetch('OCTOKIT_ENTERPRISE_MANAGEMENT_CONSOLE_PASSWORD', nil)
95
95
  end
96
96
 
97
97
  # Default management console endpoint from ENV
98
98
  # @return [String]
99
99
  def management_console_endpoint
100
- ENV['OCTOKIT_ENTERPRISE_MANAGEMENT_CONSOLE_ENDPOINT']
100
+ ENV.fetch('OCTOKIT_ENTERPRISE_MANAGEMENT_CONSOLE_ENDPOINT', nil)
101
101
  end
102
102
 
103
103
  # Default options for Faraday::Connection
@@ -114,13 +114,13 @@ module Octokit
114
114
  # Default media type from ENV or {MEDIA_TYPE}
115
115
  # @return [String]
116
116
  def default_media_type
117
- ENV['OCTOKIT_DEFAULT_MEDIA_TYPE'] || MEDIA_TYPE
117
+ ENV.fetch('OCTOKIT_DEFAULT_MEDIA_TYPE') { MEDIA_TYPE }
118
118
  end
119
119
 
120
120
  # Default GitHub username for Basic Auth from ENV
121
121
  # @return [String]
122
122
  def login
123
- ENV['OCTOKIT_LOGIN']
123
+ ENV.fetch('OCTOKIT_LOGIN', nil)
124
124
  end
125
125
 
126
126
  # Default middleware stack for Faraday::Connection
@@ -133,13 +133,13 @@ module Octokit
133
133
  # Default GitHub password for Basic Auth from ENV
134
134
  # @return [String]
135
135
  def password
136
- ENV['OCTOKIT_PASSWORD']
136
+ ENV.fetch('OCTOKIT_PASSWORD', nil)
137
137
  end
138
138
 
139
139
  # Default pagination page size from ENV
140
140
  # @return [Integer] Page size
141
141
  def per_page
142
- page_size = ENV['OCTOKIT_PER_PAGE']
142
+ page_size = ENV.fetch('OCTOKIT_PER_PAGE', nil)
143
143
 
144
144
  page_size&.to_i
145
145
  end
@@ -147,7 +147,7 @@ module Octokit
147
147
  # Default proxy server URI for Faraday connection from ENV
148
148
  # @return [String]
149
149
  def proxy
150
- ENV['OCTOKIT_PROXY']
150
+ ENV.fetch('OCTOKIT_PROXY', nil)
151
151
  end
152
152
 
153
153
  # Default SSL verify mode from ENV
@@ -162,25 +162,25 @@ module Octokit
162
162
  # Default User-Agent header string from ENV or {USER_AGENT}
163
163
  # @return [String]
164
164
  def user_agent
165
- ENV['OCTOKIT_USER_AGENT'] || USER_AGENT
165
+ ENV.fetch('OCTOKIT_USER_AGENT') { USER_AGENT }
166
166
  end
167
167
 
168
168
  # Default web endpoint from ENV or {WEB_ENDPOINT}
169
169
  # @return [String]
170
170
  def web_endpoint
171
- ENV['OCTOKIT_WEB_ENDPOINT'] || WEB_ENDPOINT
171
+ ENV.fetch('OCTOKIT_WEB_ENDPOINT') { WEB_ENDPOINT }
172
172
  end
173
173
 
174
174
  # Default behavior for reading .netrc file
175
175
  # @return [Boolean]
176
176
  def netrc
177
- ENV['OCTOKIT_NETRC'] || false
177
+ ENV.fetch('OCTOKIT_NETRC', false)
178
178
  end
179
179
 
180
180
  # Default path for .netrc file
181
181
  # @return [String]
182
182
  def netrc_file
183
- ENV['OCTOKIT_NETRC_FILE'] || File.join(ENV['HOME'].to_s, '.netrc')
183
+ ENV.fetch('OCTOKIT_NETRC_FILE') { File.join(Dir.home.to_s, '.netrc') }
184
184
  end
185
185
  end
186
186
  end