octokit 3.6.1 → 3.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 016e1858848c8b7eb85db2c79fd06f963b9433c8
4
- data.tar.gz: 3241849891bcc79293626322968a75a80a31c8f2
3
+ metadata.gz: 1f2a4c4a887142b38092500f915ae1e76045a088
4
+ data.tar.gz: 8b6a457b671dda7b59e4d95a9e21bf02326a0ff1
5
5
  SHA512:
6
- metadata.gz: 77d89824a06d37e5623d68c000587641d6d85fbd6ab20da373b5f49edfa69d33438db176f99444eed6b7e8d1415b4e4e4ad8b9672239848b64346cd009f6573e
7
- data.tar.gz: c325c51b7c9447da4e000e63b993f23c4f70abc97f7bd96bfb9aae257eb81a5dea00d2ac0c262d86df517491729c7dae26facd49f77a191def24c50f6087858f
6
+ metadata.gz: dcca491b69213f7fd2fe9aee6c439c7751b7d77802a2f8328e64456e6f3bc5739eef054e2640294df1c6430d820adef26d1d30aba1243c4b7fe7a377441b8169
7
+ data.tar.gz: d6e871030302eb322560f7534ff8ea963d616c455e711666a860c784443933a34e89ec6dc4bbf658e55ea6136d8c090e357b37b92743199c0760f508a2c2d34a
@@ -4,6 +4,8 @@ module Octokit
4
4
  # Methods for the Hooks API
5
5
  module Hooks
6
6
 
7
+ ORG_HOOKS_PREVIEW_MEDIA_TYPE = "application/vnd.github.sersi-preview+json".freeze
8
+
7
9
  # List all Service Hooks supported by GitHub
8
10
  #
9
11
  # @return [Sawyer::Resource] A list of all hooks on GitHub
@@ -13,6 +15,286 @@ module Octokit
13
15
  def available_hooks(options = {})
14
16
  get "hooks", options
15
17
  end
18
+
19
+ # List repo hooks
20
+ #
21
+ # Requires authenticated client.
22
+ #
23
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
24
+ # @return [Array<Sawyer::Resource>] Array of hashes representing hooks.
25
+ # @see https://developer.github.com/v3/repos/hooks/#list-hooks
26
+ # @example
27
+ # @client.hooks('octokit/octokit.rb')
28
+ def hooks(repo, options = {})
29
+ paginate "#{Repository.path repo}/hooks", options
30
+ end
31
+
32
+ # Get single hook
33
+ #
34
+ # Requires authenticated client.
35
+ #
36
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
37
+ # @param id [Integer] Id of the hook to get.
38
+ # @return [Sawyer::Resource] Hash representing hook.
39
+ # @see https://developer.github.com/v3/repos/hooks/#get-single-hook
40
+ # @example
41
+ # @client.hook('octokit/octokit.rb', 100000)
42
+ def hook(repo, id, options = {})
43
+ get "#{Repository.path repo}/hooks/#{id}", options
44
+ end
45
+
46
+ # Create a hook
47
+ #
48
+ # Requires authenticated client.
49
+ #
50
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
51
+ # @param name [String] The name of the service that is being called. See
52
+ # {https://api.github.com/hooks Hooks} for the possible names.
53
+ # @param config [Hash] A Hash containing key/value pairs to provide
54
+ # settings for this hook. These settings vary between the services and
55
+ # are defined in the {https://github.com/github/github-services github-services} repo.
56
+ # @option options [Array<String>] :events ('["push"]') Determines what
57
+ # events the hook is triggered for.
58
+ # @option options [Boolean] :active Determines whether the hook is
59
+ # actually triggered on pushes.
60
+ # @return [Sawyer::Resource] Hook info for the new hook
61
+ # @see https://api.github.com/hooks
62
+ # @see https://github.com/github/github-services
63
+ # @see https://developer.github.com/v3/repos/hooks/#create-a-hook
64
+ # @example
65
+ # @client.create_hook(
66
+ # 'octokit/octokit.rb',
67
+ # 'web',
68
+ # {
69
+ # :url => 'http://something.com/webhook',
70
+ # :content_type => 'json'
71
+ # },
72
+ # {
73
+ # :events => ['push', 'pull_request'],
74
+ # :active => true
75
+ # }
76
+ # )
77
+ def create_hook(repo, name, config, options = {})
78
+ options = {:name => name, :config => config, :events => ["push"], :active => true}.merge(options)
79
+ post "#{Repository.path repo}/hooks", options
80
+ end
81
+
82
+ # Edit a hook
83
+ #
84
+ # Requires authenticated client.
85
+ #
86
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
87
+ # @param id [Integer] Id of the hook being updated.
88
+ # @param name [String] The name of the service that is being called. See
89
+ # {https://api.github.com/hooks Hooks} for the possible names.
90
+ # @param config [Hash] A Hash containing key/value pairs to provide
91
+ # settings for this hook. These settings vary between the services and
92
+ # are defined in the {https://github.com/github/github-services github-services} repo.
93
+ # @option options [Array<String>] :events ('["push"]') Determines what
94
+ # events the hook is triggered for.
95
+ # @option options [Array<String>] :add_events Determines a list of events
96
+ # to be added to the list of events that the Hook triggers for.
97
+ # @option options [Array<String>] :remove_events Determines a list of events
98
+ # to be removed from the list of events that the Hook triggers for.
99
+ # @option options [Boolean] :active Determines whether the hook is
100
+ # actually triggered on pushes.
101
+ # @return [Sawyer::Resource] Hook info for the updated hook
102
+ # @see https://api.github.com/hooks
103
+ # @see https://github.com/github/github-services
104
+ # @see https://developer.github.com/v3/repos/hooks/#edit-a-hook
105
+ # @example
106
+ # @client.edit_hook(
107
+ # 'octokit/octokit.rb',
108
+ # 100000,
109
+ # 'web',
110
+ # {
111
+ # :url => 'http://something.com/webhook',
112
+ # :content_type => 'json'
113
+ # },
114
+ # {
115
+ # :add_events => ['status'],
116
+ # :remove_events => ['pull_request'],
117
+ # :active => true
118
+ # }
119
+ # )
120
+ def edit_hook(repo, id, name, config, options = {})
121
+ options = {:name => name, :config => config, :events => ["push"], :active => true}.merge(options)
122
+ patch "#{Repository.path repo}/hooks/#{id}", options
123
+ end
124
+
125
+ # Delete hook
126
+ #
127
+ # Requires authenticated client.
128
+ #
129
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
130
+ # @param id [Integer] Id of the hook to remove.
131
+ # @return [Boolean] True if hook removed, false otherwise.
132
+ # @see https://developer.github.com/v3/repos/hooks/#delete-a-hook
133
+ # @example
134
+ # @client.remove_hook('octokit/octokit.rb', 1000000)
135
+ def remove_hook(repo, id, options = {})
136
+ boolean_from_response :delete, "#{Repository.path repo}/hooks/#{id}", options
137
+ end
138
+
139
+ # Test hook
140
+ #
141
+ # Requires authenticated client.
142
+ #
143
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
144
+ # @param id [Integer] Id of the hook to test.
145
+ # @return [Boolean] Success
146
+ # @see https://developer.github.com/v3/repos/hooks/#test-a-push-hook
147
+ # @example
148
+ # @client.test_hook('octokit/octokit.rb', 1000000)
149
+ def test_hook(repo, id, options = {})
150
+ boolean_from_response :post, "#{Repository.path repo}/hooks/#{id}/tests", options
151
+ end
152
+
153
+ # List org hooks
154
+ #
155
+ # Requires client authenticated as admin for the org.
156
+ #
157
+ # @param org [String] A GitHub organization login.
158
+ # @return [Array<Sawyer::Resource>] Array of hashes representing hooks.
159
+ # @see https://developer.github.com/v3/orgs/hooks/#list-hooks
160
+ # @example
161
+ # @client.org_hooks('octokit')
162
+ def org_hooks(org, options = {})
163
+ options = ensure_org_hooks_api_media_type(options)
164
+ paginate "orgs/#{org}/hooks", options
165
+ end
166
+ alias :list_org_hooks :org_hooks
167
+
168
+ # Get an org hook
169
+ #
170
+ # Requires client authenticated as admin for the org.
171
+ #
172
+ # @param org [String] A GitHub organization login.
173
+ # @param id [Integer] Id of the hook to get.
174
+ # @return [Sawyer::Resource] Hash representing hook.
175
+ # @see https://developer.github.com/v3/orgs/hooks/#get-single-hook
176
+ # @example
177
+ # @client.org_hook('octokit', 123)
178
+ def org_hook(org, id, options = {})
179
+ options = ensure_org_hooks_api_media_type(options)
180
+ get "orgs/#{org}/hooks/#{id}", options
181
+ end
182
+
183
+ # Create an org hook
184
+ #
185
+ # Requires client authenticated as admin for the org.
186
+ #
187
+ # @param org [String] A GitHub organization login.
188
+ # @param config [Hash] A Hash containing key/value pairs to provide
189
+ # settings for this hook.
190
+ # @option options [Array<String>] :events ('["push"]') Determines what
191
+ # events the hook is triggered for.
192
+ # @option options [Boolean] :active Determines whether the hook is
193
+ # actually triggered on pushes.
194
+ # @return [Sawyer::Resource] Hook info for the new hook
195
+ # @see https://api.github.com/hooks
196
+ # @see https://developer.github.com/v3/orgs/hooks/#create-a-hook
197
+ # @example
198
+ # @client.create_org_hook(
199
+ # 'octokit',
200
+ # {
201
+ # :url => 'http://something.com/webhook',
202
+ # :content_type => 'json'
203
+ # },
204
+ # {
205
+ # :events => ['push', 'pull_request'],
206
+ # :active => true
207
+ # }
208
+ # )
209
+ def create_org_hook(org, config, options = {})
210
+ options = ensure_org_hooks_api_media_type(options)
211
+ options = { :name => "web", :config => config }.merge(options)
212
+ post "orgs/#{org}/hooks", options
213
+ end
214
+
215
+ # Update an org hook
216
+ #
217
+ # Requires client authenticated as admin for the org.
218
+ #
219
+ # @param org [String] A GitHub organization login.
220
+ # @param id [Integer] Id of the hook to update.
221
+ # @param config [Hash] A Hash containing key/value pairs to provide
222
+ # settings for this hook.
223
+ # @option options [Array<String>] :events ('["push"]') Determines what
224
+ # events the hook is triggered for.
225
+ # @option options [Boolean] :active Determines whether the hook is
226
+ # actually triggered on pushes.
227
+ # @return [Sawyer::Resource] Hook info for the new hook
228
+ # @see https://api.github.com/hooks
229
+ # @see https://developer.github.com/v3/orgs/hooks/#edit-a-hook
230
+ # @example
231
+ # @client.edit_org_hook(
232
+ # 'octokit',
233
+ # 123,
234
+ # {
235
+ # :url => 'http://something.com/webhook',
236
+ # :content_type => 'json'
237
+ # },
238
+ # {
239
+ # :events => ['push', 'pull_request'],
240
+ # :active => true
241
+ # }
242
+ # )
243
+ def edit_org_hook(org, id, config, options = {})
244
+ options = ensure_org_hooks_api_media_type(options)
245
+ options = { :config => config }.merge(options)
246
+ patch "orgs/#{org}/hooks/#{id}", options
247
+ end
248
+ alias :update_org_hook :edit_org_hook
249
+
250
+ # Ping org hook
251
+ #
252
+ # Requires client authenticated as admin for the org.
253
+ #
254
+ # @param org [String] A GitHub organization login.
255
+ # @param id [Integer] Id of the hook to update.
256
+ # @return [Boolean] Success
257
+ # @see https://developer.github.com/v3/orgs/hooks/#ping-a-hook
258
+ # @example
259
+ # @client.ping_org_hook('octokit', 1000000)
260
+ def ping_org_hook(org, id, options = {})
261
+ options = ensure_org_hooks_api_media_type(options)
262
+ boolean_from_response :post, "orgs/#{org}/hooks/#{id}/pings", options
263
+ end
264
+
265
+ # Remove org hook
266
+ #
267
+ # Requires client authenticated as admin for the org.
268
+ #
269
+ # @param org [String] A GitHub organization login.
270
+ # @param id [Integer] Id of the hook to update.
271
+ # @return [Boolean] True if hook removed, false otherwise.
272
+ # @see https://developer.github.com/v3/orgs/hooks/#delete-a-hook
273
+ # @example
274
+ # @client.remove_org_hook('octokit', 1000000)
275
+ def remove_org_hook(org, id, options = {})
276
+ options = ensure_org_hooks_api_media_type(options)
277
+ boolean_from_response :delete, "orgs/#{org}/hooks/#{id}", options
278
+ end
279
+
280
+ private
281
+
282
+ def ensure_org_hooks_api_media_type(options = {})
283
+ if options[:accept].nil?
284
+ options[:accept] = ORG_HOOKS_PREVIEW_MEDIA_TYPE
285
+ warn_org_hooks_preview
286
+ end
287
+
288
+ options
289
+ end
290
+
291
+ def warn_org_hooks_preview
292
+ octokit_warn <<-EOS
293
+ WARNING: The preview version of the Org Hooks API is not yet suitable for production use.
294
+ You can avoid this message by supplying an appropriate media type in the 'Accept' request
295
+ header. See the blog post for details: http://git.io/<LINK>
296
+ EOS
297
+ end
16
298
  end
17
299
  end
18
300
  end
@@ -481,140 +481,6 @@ module Octokit
481
481
  end
482
482
  alias :get_branch :branch
483
483
 
484
- # List repo hooks
485
- #
486
- # Requires authenticated client.
487
- #
488
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
489
- # @return [Array<Sawyer::Resource>] Array of hashes representing hooks.
490
- # @see https://developer.github.com/v3/repos/hooks/#list-hooks
491
- # @example
492
- # @client.hooks('octokit/octokit.rb')
493
- def hooks(repo, options = {})
494
- paginate "#{Repository.path repo}/hooks", options
495
- end
496
-
497
- # Get single hook
498
- #
499
- # Requires authenticated client.
500
- #
501
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
502
- # @param id [Integer] Id of the hook to get.
503
- # @return [Sawyer::Resource] Hash representing hook.
504
- # @see https://developer.github.com/v3/repos/hooks/#get-single-hook
505
- # @example
506
- # @client.hook('octokit/octokit.rb', 100000)
507
- def hook(repo, id, options = {})
508
- get "#{Repository.path repo}/hooks/#{id}", options
509
- end
510
-
511
- # Create a hook
512
- #
513
- # Requires authenticated client.
514
- #
515
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
516
- # @param name [String] The name of the service that is being called. See
517
- # {https://api.github.com/hooks Hooks} for the possible names.
518
- # @param config [Hash] A Hash containing key/value pairs to provide
519
- # settings for this hook. These settings vary between the services and
520
- # are defined in the {https://github.com/github/github-services github-services} repo.
521
- # @option options [Array<String>] :events ('["push"]') Determines what
522
- # events the hook is triggered for.
523
- # @option options [Boolean] :active Determines whether the hook is
524
- # actually triggered on pushes.
525
- # @return [Sawyer::Resource] Hook info for the new hook
526
- # @see https://api.github.com/hooks
527
- # @see https://github.com/github/github-services
528
- # @see https://developer.github.com/v3/repos/hooks/#create-a-hook
529
- # @example
530
- # @client.create_hook(
531
- # 'octokit/octokit.rb',
532
- # 'web',
533
- # {
534
- # :url => 'http://something.com/webhook',
535
- # :content_type => 'json'
536
- # },
537
- # {
538
- # :events => ['push', 'pull_request'],
539
- # :active => true
540
- # }
541
- # )
542
- def create_hook(repo, name, config, options = {})
543
- options = {:name => name, :config => config, :events => ["push"], :active => true}.merge(options)
544
- post "#{Repository.path repo}/hooks", options
545
- end
546
-
547
- # Edit a hook
548
- #
549
- # Requires authenticated client.
550
- #
551
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
552
- # @param id [Integer] Id of the hook being updated.
553
- # @param name [String] The name of the service that is being called. See
554
- # {https://api.github.com/hooks Hooks} for the possible names.
555
- # @param config [Hash] A Hash containing key/value pairs to provide
556
- # settings for this hook. These settings vary between the services and
557
- # are defined in the {https://github.com/github/github-services github-services} repo.
558
- # @option options [Array<String>] :events ('["push"]') Determines what
559
- # events the hook is triggered for.
560
- # @option options [Array<String>] :add_events Determines a list of events
561
- # to be added to the list of events that the Hook triggers for.
562
- # @option options [Array<String>] :remove_events Determines a list of events
563
- # to be removed from the list of events that the Hook triggers for.
564
- # @option options [Boolean] :active Determines whether the hook is
565
- # actually triggered on pushes.
566
- # @return [Sawyer::Resource] Hook info for the updated hook
567
- # @see https://api.github.com/hooks
568
- # @see https://github.com/github/github-services
569
- # @see https://developer.github.com/v3/repos/hooks/#edit-a-hook
570
- # @example
571
- # @client.edit_hook(
572
- # 'octokit/octokit.rb',
573
- # 100000,
574
- # 'web',
575
- # {
576
- # :url => 'http://something.com/webhook',
577
- # :content_type => 'json'
578
- # },
579
- # {
580
- # :add_events => ['status'],
581
- # :remove_events => ['pull_request'],
582
- # :active => true
583
- # }
584
- # )
585
- def edit_hook(repo, id, name, config, options = {})
586
- options = {:name => name, :config => config, :events => ["push"], :active => true}.merge(options)
587
- patch "#{Repository.path repo}/hooks/#{id}", options
588
- end
589
-
590
- # Delete hook
591
- #
592
- # Requires authenticated client.
593
- #
594
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
595
- # @param id [Integer] Id of the hook to remove.
596
- # @return [Boolean] True if hook removed, false otherwise.
597
- # @see https://developer.github.com/v3/repos/hooks/#delete-a-hook
598
- # @example
599
- # @client.remove_hook('octokit/octokit.rb', 1000000)
600
- def remove_hook(repo, id, options = {})
601
- boolean_from_response :delete, "#{Repository.path repo}/hooks/#{id}", options
602
- end
603
-
604
- # Test hook
605
- #
606
- # Requires authenticated client.
607
- #
608
- # @param repo [Integer, String, Hash, Repository] A GitHub repository.
609
- # @param id [Integer] Id of the hook to test.
610
- # @return [Boolean] Success
611
- # @see https://developer.github.com/v3/repos/hooks/#test-a-push-hook
612
- # @example
613
- # @client.test_hook('octokit/octokit.rb', 1000000)
614
- def test_hook(repo, id, options = {})
615
- boolean_from_response :post, "#{Repository.path repo}/hooks/#{id}/tests", options
616
- end
617
-
618
484
  # List users available for assigning to issues.
619
485
  #
620
486
  # Requires authenticated client for private repos.
@@ -2,6 +2,6 @@ module Octokit
2
2
 
3
3
  # Current version
4
4
  # @return [String]
5
- VERSION = "3.6.1".freeze
5
+ VERSION = "3.7.0".freeze
6
6
 
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.1
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland