Class: Github::Client::Repos::Hooks
- Defined in:
- lib/github_api/client/repos/hooks.rb
Overview
The Repository Hooks API manages the post-receive web and service hooks for a repository.
Constant Summary collapse
- VALID_HOOK_PARAM_NAMES =
%w[ name config active events add_events remove_events ].freeze
- VALID_HOOK_PARAM_VALUES =
Active hooks can be configured to trigger for one or more events. The default event is push. The available events are:
{ 'events' => %w[ push issues issue_comment commit_comment pull_request gollum watch download fork fork_apply member public ] }.freeze
- REQUIRED_PARAMS =
:nodoc:
%w[ name config ].freeze
Constants included from MimeType
Constants included from Github::Constants
Github::Constants::ACCEPT, Github::Constants::ACCEPTED_OAUTH_SCOPES, Github::Constants::ACCEPT_CHARSET, Github::Constants::CACHE_CONTROL, Github::Constants::CONTENT_LENGTH, Github::Constants::CONTENT_TYPE, Github::Constants::DATE, Github::Constants::ETAG, Github::Constants::HEADER_LAST, Github::Constants::HEADER_LINK, Github::Constants::HEADER_NEXT, Github::Constants::LOCATION, Github::Constants::META_FIRST, Github::Constants::META_LAST, Github::Constants::META_NEXT, Github::Constants::META_PREV, Github::Constants::META_REL, Github::Constants::OAUTH_SCOPES, Github::Constants::PARAM_PAGE, Github::Constants::PARAM_PER_PAGE, Github::Constants::PARAM_START_PAGE, Github::Constants::RATELIMIT_LIMIT, Github::Constants::RATELIMIT_REMAINING, Github::Constants::RATELIMIT_RESET, Github::Constants::SERVER, Github::Constants::USER_AGENT
Instance Attribute Summary
Attributes inherited from API
Instance Method Summary collapse
-
#create(*args) ⇒ Object
Create a hook.
-
#delete(*args) ⇒ Object
Delete a hook.
-
#edit(*args) ⇒ Object
Edit a hook.
-
#get(*args) ⇒ Object
(also: #find)
Get a single hook.
-
#list(*args) ⇒ Object
(also: #all)
List repository hooks.
-
#ping(*args) ⇒ Object
Ping a hook.
-
#test(*args) ⇒ Object
Test a hook.
Methods inherited from API
after_callbacks, after_request, #api_methods_in, #arguments, before_callbacks, before_request, clear_request_methods!, #disable_redirects, #execute, extend_with_actions, extra_methods, #extract_basic_auth, extract_class_name, #filter_callbacks, inherited, #initialize, internal_methods, method_added, #method_missing, #module_methods_in, namespace, request_methods, root!, #run_callbacks, #set, #yield_or_eval
Methods included from Github::ClassMethods
#configuration, #configure, #require_all
Methods included from RateLimit
#ratelimit, #ratelimit_remaining, #ratelimit_reset
Methods included from Request::Verbs
#delete_request, #get_request, #head_request, #options_request, #patch_request, #post_request, #put_request
Methods included from MimeType
Methods included from Authorization
#auth_code, #authenticated?, #authentication, #authorize_url, #basic_authed?, #client, #get_token
Constructor Details
This class inherits a constructor from Github::API
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Github::API
Instance Method Details
#create(*args) ⇒ Object
Create a hook
To create a webhook, the following fields are required by the config:
116 117 118 119 120 121 122 123 |
# File 'lib/github_api/client/repos/hooks.rb', line 116 def create(*args) arguments(args, required: [:user, :repo]) do permit VALID_HOOK_PARAM_NAMES, recursive: false assert_required REQUIRED_PARAMS end post_request("/repos/#{arguments.user}/#{arguments.repo}/hooks", arguments.params) end |
#delete(*args) ⇒ Object
Delete a hook
206 207 208 209 210 |
# File 'lib/github_api/client/repos/hooks.rb', line 206 def delete(*args) arguments(args, required: [:user, :repo, :id]) delete_request("/repos/#{arguments.user}/#{arguments.repo}/hooks/#{arguments.id}", arguments.params) end |
#edit(*args) ⇒ Object
Edit a hook
157 158 159 160 161 162 163 164 |
# File 'lib/github_api/client/repos/hooks.rb', line 157 def edit(*args) arguments(args, required: [:user, :repo, :id]) do permit VALID_HOOK_PARAM_NAMES, recursive: false assert_required REQUIRED_PARAMS end patch_request("/repos/#{arguments.user}/#{arguments.repo}/hooks/#{arguments.id}", arguments.params) end |
#get(*args) ⇒ Object Also known as: find
Get a single hook
62 63 64 65 66 |
# File 'lib/github_api/client/repos/hooks.rb', line 62 def get(*args) arguments(args, required: [:user, :repo, :id]) get_request("/repos/#{arguments.user}/#{arguments.repo}/hooks/#{arguments.id}", arguments.params) end |
#list(*args) ⇒ Object Also known as: all
List repository hooks
46 47 48 49 50 51 52 |
# File 'lib/github_api/client/repos/hooks.rb', line 46 def list(*args) arguments(args, required: [:user, :repo]) response = get_request("/repos/#{arguments.user}/#{arguments.repo}/hooks", arguments.params) return response unless block_given? response.each { |el| yield el } end |
#ping(*args) ⇒ Object
Ping a hook
This will trigger a ping event to be sent to the hook.
193 194 195 196 197 |
# File 'lib/github_api/client/repos/hooks.rb', line 193 def ping(*args) arguments(args, required: [:user, :repo, :id]) post_request("/repos/#{arguments.user}/#{arguments.repo}/hooks/#{arguments.id}/pings", arguments.params) end |
#test(*args) ⇒ Object
Test a hook
This will trigger the hook with the latest push to the current repository if the hook is subscribed to push events. If the hook is not subscribed to push events, the server will respond with 204 but no test POST will be generated.
178 179 180 181 182 |
# File 'lib/github_api/client/repos/hooks.rb', line 178 def test(*args) arguments(args, required: [:user, :repo, :id]) post_request("/repos/#{arguments.user}/#{arguments.repo}/hooks/#{arguments.id}/tests", arguments.params) end |