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
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
Edit a hook

 @param [Hash] params
 @input params [Hash] :config
   Required. Key/value pairs to provide settings for this hook.
   These settings vary between the services and are defined in
   the github-services repository. Booleans are stored internally
   as “1” for true, and “0” for false. Any JSON true/false values
   will be converted automatically.
 @input params [Array] :events
   Determines what events the hook is triggered for. Default: ["push"]
 @input params [Array] :add_events
   Determines a list of events to be added to the list of events
   that the Hook triggers for.
 @input params [Array] :remove_events
   Determines a list of events to be removed from the list of
   events that the Hook triggers for.
 @input params [Boolean] :active
   Determines whether the hook is actually triggered on pushes.

 @example
  github = Github.new
  github.repos.hooks.edit 'user-name', 'repo-name', 'hook-id',
    "name" => "campfire",
    "active" =>  true,
    "config" =>  {
      "subdomain" => "github",
      "room" =>  "Commits",
      "token" => "abc123"
    }

 @api public